您的位置:首页 > 其它

笔记整理——activity间数据传递

2014-12-05 22:51 211 查看
代码演示UI图:
           界面1(程序第一界面)                              界面2(跳转到的界面)                         
         

 
                  

          


[b]            界面3(界面2回传数据到界面1)
[/b]
         




1、用Intent传递,关键代码:
MainActivity.java(界面1——主界面)

btnStartAty1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,Aty1.class);
i.setClassName("com.demo.activitylc", "com.demo.activitylc.Aty1");
i.putExtra("txt", "你好,我是activity_main传递来的数据");
startActivity(i);
}
});




Aty1.java(界面2——跳转到的界面)

tvOut = (TextView) findViewById(R.id.tvOut);
tvOut.setText(getIntent().getStringExtra("txt"));


2、使用Bundle传递复杂点的数据,关键代码:
MainActivity.java(界面1——主界面)


btnStartAty1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,Aty1.class);

Bundle data = new Bundle();
data.putString("txt", "我是MainActivity.java传递来的数据");

i.putExtras(data);

startActivity(i);
}
});



Aty1.java(界面2——跳转到的界面)

tvOut = (TextView) findViewById(R.id.tvOut);
//使用Bundle可以传递较为复杂的数据
Bundle data = getIntent().getExtras();
String txt = data.getString("txt");
tvOut.setText(txt);


3、界面2回传数据到界面1,要重写onActivityResult()方法,关键代码:
MainActivity.java(界面1——主界面)


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

tvOut = (TextView) findViewById(R.id.tvOut);
btnStartAty1 = (Button) findViewById(R.id.btnStartAty1);

btnStartAty1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,Aty1.class);

Bundle data = new Bundle();
data.putString("txt", "我是MainActivity.java传递来的数据");

i.putExtras(data);

startActivityForResult(i, 0);
}
});
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

String result = data.getStringExtra("result");
tvOut.setText(result);
super.onActivityResult(requestCode, resultCode, data);
}


Aty1.java(界面2——跳转到的界面)

	@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.aty1);

btnClose = (Button) findViewById(R.id.btnClose);
//点击关闭按钮的时候,回传数据给MainActivity.java对应的xml文件
btnClose.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Intent i = new Intent();
i.putExtra("result", "我是Aty1回传的数据");
setResult(0,i);
finish();
}
});

tvOut = (TextView) findViewById(R.id.tvOut); //使用Bundle可以传递较为复杂的数据 Bundle data = getIntent().getExtras(); String txt = data.getString("txt"); tvOut.setText(txt);;
}


完整代码链接:
activity间数据传递
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息