导读:
第一部分,基础activity知识
第二部分,Intent传递值
第三部分,Intent传递类对象
Activity |
1.创建Activity的注意点
- 1.1一个Activity一个类,继承Activity
- 1.2需要overide onCreate()方法,第一次运行的时候先调用onCreate
- 1.3必须在AndroidMainfest.xml中注册Activity
- 1.4为Activity添加必要的控件
2.补充
- 通常一个xml对应一个activity,此外多个activity也可以对应一个xml
- xml的作用? —将动作和显示分离
多个Activity
如何跳转?
startActivity(Intent.intent);
Intent |
Intent的基本作用
包含一组信息 | |
---|---|
component name | 指定启动哪个activity,service,广播接收器… |
action | 指定另一个activity做什么 |
data | 传送的数据 |
extras | 额外信息,键值对 |
category | |
flags |
Intent使用简易实例
Intent intent=new Intent();
intent.setClass(Activity0.this, Activity1.class);
startActivity(intent);
* 新建activity1
* 记得activity要注册2
Intent传送数据 |
intent.putExtra("extras", "nice!");
接收
Intent intent = this.getIntent();
String extrasString = intent.getStringExtra("extras");
Intent传递数据给另一个应用程序(发短信为例)
Uri uri = Uri.parse("smsto:10086");
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra("sms_body", "短信内容");
startActivity(intent);
Intent传递类对象 |
在我自己的项目里准备用Intent将socket传递给第二个activity,特此感谢作者的教导。
自己的类要实现serializable
传递类对象
Bundle bundle = new Bundle();
bundle.putSerializable("socket", socket);
intent.putExtras(bundle);
得到类对象
Intent intent = getIntent();
socket = (ServerSocket) intent.getSerializableExtra("socket");
可以使用serializable或者parcelable
具体内容google学习
补充琐碎知识点 |
1-哪些android组件可注册Intent handlers
- Activity
- BroadcastReceiver
- Service
2- Url.parse(link)的作用(link为http的URL)
创建URL object(对象)
3-没有指定action的IntentFilter将会匹配来自Intent的任何action
4-没有category的IntentFilter仅仅匹配没有catogory的Intent,而不是和通配符一样(和action不一样)
5-
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<action android:name="android.intent.action.MAIN" />
决定应用程序最先启动的Activity
<category android:name="android.intent.category.LAUNCHER" />
决定应用程序是否显示在程序列表里
**6-**android.intent.category.DEFAULT的用途和使用
链接:http://blog.csdn.net/jason0539/article/details/10049899
基础控件 |
按键监听
开启监听
client_login.setOnClickListener(new ButtonListener());
可以通过v.getId得到R.ID来区分各个按键
class ButtonListener implements OnClickListener
{
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(ClientActivity.this, ClientMainActivity.class);
ClientActivity.this.startActivity(intent);
}
}