Android中Intent基本使用
Intent(意图)的基本作用
一个Intent对象包含了一组信息:<< Componentname 要启动哪一个Activity
<< Action 启动后,做什么
<< Data 传送怎样的数据
Category
<< Extras 额外的信息:键值对
Flags
<< 代表比较重要的信息
Intent的基本使用方法
Intent intent = new Intent();intent.setClass(Activity01.this,Activity02.class);
startActivity(intent);
其中的setClass方法最为关键:
Intent.setClass(Context packageContext, Class<?> cls)
Intent.setClass(从哪个Activity跳转, 跳转到哪去)
Intent可以在两个Activity中传递数据,现简单的实现一下:
创建一个OtherActivity,它有一个布局文件other.xml,所以OtherActivity.java为:
<span style="white-space:pre"> </span>public class OtherActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
TextView textView = (TextView) findViewById(R.id.textView1);
//得到由MainActivity传递来的intent
Intent intent = getIntent();
//用getStringExtra(key) 取出值 来
String value = intent.getStringExtra("testIntent");
textView.setText(value);
}
}
然后在清单文件中配置一下OtherActivity:
<activity
android:name=".OtherActivity"
android:label="other" >
</activity>
在MainActivity中:
<span style="white-space:pre"> </span>public class MainActivity extends Activity {
private Button myButton = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myButton = (Button) findViewById(R.id.myButton);
myButton.setOnClickListener(new MyButtonListener());
}
class MyButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
//生成一个Intent对象
Intent intent = new Intent();
//在intent对象里加了一个键值对
intent.putExtra("testIntent", "1233");
//Intent.setClass(Context packageContext, Class<?> cls)
//Intent.setClass(从哪个Activity跳转, 跳转到哪去)
intent.setClass(getApplicationContext(), OtherActivity.class);
MainActivity.this.startActivity(intent);
}
}
}
这样MainActivity就可以跳转到OtherActivity中了
使用Intent发送消息:
Uri uri = Uri.parse("smsto://0800000123");
Intent itent = new Intent(Intent.ACTION_SENDTO,uri);
intent.putExtra("sms_body","The SMS text");
startActivity(intent);
操作如下:
<span style="white-space:pre"> </span>public class MainActivity extends Activity {
private Button smsButton = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
smsButton = (Button) findViewById(R.id.sms);
smsButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri.parse("smsto://0800000123");
Intent intent = new Intent(Intent.ACTION_SENDTO,uri);
intent.putExtra("sms_body","The SMS text");
startActivity(intent);
}
});
}
}
点击了那个smsButton,就可以跳转到系统的发消息的Activity