首页 > 代码库 > 启动一个新的activity并携带数据,返回数据给上一个activity
启动一个新的activity并携带数据,返回数据给上一个activity
一、在启动一个新的activity的时候可以通过Intent携带数据,通过Intent.putExtra()方法通过键值对的形势装入数据。在新启动的activity中通过 getIntent()方法获取启动activity的Intent,并通过getxxxxExtra()获取传递的数据。
二、如果希望被启动的新activity返回数据,则需要使用startActivityForResult()启动新的activity,方法携带两个参数,第二个为请求码,用于返回时判断是由哪个activity返回的,另一个是Intent.需要重写onActivityResult(int requestCode,int resultCode,Intent data)方法获取返回的数据。在新的activity中通过setResult()方法设置要回传的数据,该方法接收2个参数,第一个为返回码,只能是RESULT_OK和RESULT_CANCELED这两个值,第二个参数是一个携带数据的Intent,
调用finish()方法可结束当前activity。
示例代码如下:
public class MainActivity extends Activity {
Button btn1;
TextView text1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text1 = (TextView) findViewById(R.id.text1);
btn1 = (Button) findViewById(R.id.button1);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String str1 = new String("我爱麦麦妈妈");
Intent intent =new Intent(MainActivity.this,SecondActivity.class);
intent.putExtra("dataSend",str1);
startActivityForResult(intent,1);
// startActivity(intent);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 1){
text1.setText(data.getStringExtra("backString"));
}
}
}
public class SecondActivity extends Activity {
TextView text2;
Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
Intent intent1 = getIntent();
String getString = intent1.getStringExtra("dataSend");
text2 = (TextView) findViewById(R.id.text2);
text2.setText(getString);
btn2 = (Button) findViewById(R.id.button2);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intentTemp = new Intent();
intentTemp.putExtra("backString","北极熊爱企鹅");
setResult(1,intentTemp);
finish();
}
});
}
}
启动一个新的activity并携带数据,返回数据给上一个activity
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。