不同Activity之间的数据传递
若要在额外调用另一个Activity的同时传递数据,那么就需要利用Android.os.Bundle对象封装数据的能力,将所需要传递的数据或参数通过Bundle来传递不同Intent之间的数据。而数据回传则需要重写onActivityResult()方法。下面来看实例:
package com.example.test01;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView textView01;
Button button01;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView01 = (TextView)findViewById(R.id.textView01);
button01 = (Button)findViewById(R.id.button01);
button01.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Intent intent = new Intent(getApplicationContext(), activity2.class);
Bundle bundle = new Bundle();
bundle.putBoolean("sex", true);
intent.putExtras(bundle);
startActivityForResult(intent, 0);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (resultCode) {
case RESULT_OK:
Bundle bundle = data.getExtras();
boolean sex = bundle.getBoolean("sex");
textView01.setText(sex + "");
break;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
package com.example.test01;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class activity2 extends Activity
{
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button)findViewById(R.id.button01);
button.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String sx = "女性";
button.setText(sx + "");
boolean sex = bundle.getBoolean("sex");
if (sex) sx = "男性";
button.setText(sx + "");
setResult(RESULT_OK , intent);
finish();
}
});
}
}