在启动活动的时候传递数据,利用Intent的putExtra()方法进行重载,可以在Intent中暂存数据,也可以从中取出数据。可以向下一个活动传递数据,也可以返回数据给上一个活动。
这里举一个例子说明Intent关于数据传递的用法,主活动里面设置两个按钮,分别能打开NormalActivty和一个DIalog,Dialog中有一句话向Dialog里面传递数据,在打开NormalActivty里面设置一个返回主活动的按钮,并且将数据返回。
private void logic() {
btnNormalOne.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent=new Intent(MainActivity.this, NormalActivity.class);
startActivity(intent);
startActivityForResult(intent, 1);
}
});
btnDialogOne.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent= new Intent("com.example.intenttest.ACTION_START");
intent.putExtra("MainActivity", "dialog");
startActivity(intent);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 1:
if(resultCode==RESULT_OK){
String returnedData =data.getStringExtra("NormalActivity");
Log.d("MainActivity", returnedData);
}
break;
default:
}@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_normal);
super.onCreate(savedInstanceState);
btnBack=(Button)findViewById(R.id.back);
btnBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent= new Intent();
intent.putExtra("NormalActivity", "Back to MainActivity");
setResult(RESULT_OK, intent);
finish();
}
});
}@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_normal);
super.onCreate(savedInstanceState);
Intent intent=getIntent();
String intentData=intent.getStringExtra("MainActivity");
Log.d("MainActivity", intentData);
}