这个表格布局不像HTML中的表格那样灵活,只能通过 TableRow 属性来控制它的行而列的话里面有几个控件就是几列(一般情况)。 如: 表示两行两列的一个表格。
android:gravity=\书面解释是权重比。其时就是让它居中显示。它还可以动态添加里面的每行每列。如下代码所示: /*根据id查找表格对象*/
TableLayout tableLayout = (TableLayout) findViewById(R.id.table01); /*创建列对象*/
TableRow tableRow = new TableRow(this); /*文本框对象*/
TextView temp = new TextView(this); temp.setText(\的值\/*将此文本添加到列中*/ tableRow.addView(temp);
android:stretchColumns=\它的意思就是自动拉伸1,2,3,4列。
4.AbsoluteLayout ( 绝对布局 ) : (里面可以放多个控件,并且可以自己定义控件的x,y的位置)
5.FrameLayout ( 帧布局 ) :(里面可以放多个控件,不过控件的位置都是相对位置)
安卓软件开发流程
1、手机应用程序开发\需求分析\2、手机应用版本确认 3、签订协议
4、手机应用策划及创意 5、手机应用开发 6、移动应用发布 7、手机应用维护 8、应用升级 9、应用案例
Android Intent
1 Intent用法
1.1启动一个特定的Activity
Intent intent=new Intent(CurrentActivity.this,OtherActivity.class); startActivity(intent); 1.2启动一个未指明的Activity
Intent inter=new Intent(Intent.ACTION_DIAL,Uri.parse(“tel:115-1345”)); startActivity(intent); 1.3处理一个Activity的返回值
Public void onCreate(Bundle saveInstanceState){
super.onCreate(savedInstanceState); listener1=new OnClickListener(){ public void onClick(View v){
Intent intent1=new Intent(ActivityMain.this,Activity1.class); Intent1.putExtra(“activityMain”,”数据来自activityMain”); startActivityForResult(intent1,REQUEST_CODE); } };
Listener2=new OnClickListener(){ public void onClick(View v){ setTitle(“这是在ActivityMain”);
Intent intent2=new Intent(ActivityMain.this,Activity2.class); startActivity(intent2); } };
setContentView(R.layout.main);
button1=(Button)findViewById(R.id.button1); button1.setOnClickListener(listener1); button2=(Button)findViewById(R.id.button2); button2.setOnClickListener(listener2); setTitle(“ActivityMain”); } @Override
Protected void onActivityResult(int requestCode,int resultCode,Intent data){ If(requestCode==REQUEST_CODE){ If(resultCode==RESULT_CANCELED) setTitle(“取消”);
else if(resultCode==RESULT_OK){ String temp=null;
Bundle extras=data.getExtras(); If(extras!=null){
Temp=extras.getString(“store”); }
setTitle(temp); } } }
2 Intent应用举例
Activity01.java
public class Activity01 extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); /* 设置显示main.xml布局 */ setContentView(R.layout.main);
/* findViewById(R.id.button1)取得布局main.xml中的button1 */ Button button = (Button) findViewById(R.id.button1); /* 监听button的事件信息 */
button.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) {
/* 新建一个Intent对象 */ Intent intent = new Intent(); /* 指定intent要启动的类 */
intent.setClass(Activity01.this, Activity02.class); /* 启动一个新的Activity */ startActivity(intent); /* 关闭当前的Activity */ Activity01.this.finish(); } }); } }
Activity02.java
public class Activity02 extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); /* 设置显示main2.xml布局 */ setContentView(R.layout.main2);
/* findViewById(R.id.button2)取得布局main.xml中的button2 */ Button button = (Button) findViewById(R.id.button2); /* 监听button的事件信息 */
button.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
/* 新建一个Intent对象 */ Intent intent = new Intent(); /* 指定intent要启动的类 */
intent.setClass(Activity02.this, Activity01.class); /* 启动一个新的Activity */ startActivity(intent); /* 关闭当前的Activity */ Activity02.this.finish(); } }); } }
3 Android系统自带的Action介绍 3.1ACTION_MAIN
Android.intent.action.MAIN,在每个AndroidManifest.xml问洞中都能看到,标记当前的Activity作为一个程序的入口。 3.2ACTION_VIEW 将数据显示给用户 3.3ACTION_DIAL
用于描述给用户打电话的动作 3.4ACTION_PICK
从特定的一组数据中进行选择数据操作 3.5ACTION_DEIT 编辑特定的数据 3.6ACTION_DELETE 删除特定的数据
4与动作Action相关联的数据Data介绍
VIEW_ACTION content://contacts/1显示标示符为1的联系人的详细信息 EDIT_ACTION content://contacts/1编辑标示符为1的联系人的详细信息 VIEW_ACTION content://contacts/显示所有联系人列表
PICK_ACTION content://contacts/显示所有联系人的列表,并且允许用户在列表中选择一个联系人,然后把这个联系人返回给父Activity 5 Intent中其他属性介绍
类别category:它为执行动作的附加信息
数据类型type:显式指定Intent的目标组件的类名称。 组件component:指定Intent的目标组件的类名称
附加信息extras:是其他所有附加信息的集合 6 Android解析Intent实现
6.1直接Intent:指定了component属性的Intent或者setClass 6.2间接Intent:没有指定comonent属性的Intent。
6.3如果Intent指明了action,则目标组件的IntentFilter的action列表中就必须包含有这个action,否则不匹配
6.4如果Intent没有提供type,系统将从data中得到数据类型
6.5如果Intent中的数据不是具体内容而是URI形式的话,则将根据Intent中数据的scheme进行匹配
6.6如果Intent指定了一个或多个category,这些类别必须全部出现在组件的类别列表中
SQLite 数据库
1、SQLite简介
SQLite第一个Alpha版本诞生于2000年5月. 至今已经有4个年头了. 而在今年的5月SQLite也迎来了一个新的里程: SQLite 3.
万网主机适用围:标准企业A型以上UNIX主机,以上主机都已经安装SQLite2.0数据库。 下面是访问SQLite官方网站: http://www.sqlite.org/ 时第一眼看到关于SQLite的特性. 1. ACID事务
2. 零配置 – 无需安装和管理配置
3. 储存在单一磁盘文件中的一个完整的数据库 4. 数据库文件可以在不同字节顺序的机器间自由的共享 5. 支持数据库大小至2TB
6. 足够小, 大致3万行C代码, 250K
7. 比一些流行的数据库在大部分普通数据库操作要快 8. 简单, 轻松的API
9. 包含TCL绑定, 同时通过Wrapper支持其他语言的绑定 10. 良好注释的源代码, 并且有着90%以上的测试覆盖率 11. 独立: 没有额外依赖
12. Source完全的Open, 你可以用于任何用途, 包括出售它 13. 支持多种开发语言,C, PHP, Perl, Java, ASP.NET,Python 2、SQLite类型 SQLite的数据类型
首先你会接触到一个让你惊讶的名词: Typelessness(无类型). 对! SQLite是无类型的. 这意味着你可以保存任何类型的数据到你所想要保存的任何表的任何列中, 无论这列声明的数据类型是什么(只有在一种情况下不是, 稍后解释). 对于SQLite来说对字段不指定类型是完全有效的. 如:
Create Table ex1(a, b, c);
诚然SQLite允许忽略数据类型, 但是仍然建议在你的Create Table语句中指定数据类型. 因为数据类型对于你和其他的程序员交流, 或者你准备换掉你的数据库引擎. SQLite支持常见