如何通过intent和bundle获取textview对android中两个不同活动的价值

时间:2012-12-26 09:28:28

标签: android android-intent bundle

如何通过intent和bundle将textview的值赋予android中的两个不同的活动 请告诉我.. 我的代码如下:

Activity1.java

Intent intent = new Intent(Activity1.this,Activity2.class);
Bundle bundle = new Bundle();
bundle.putString("title",ed1.getText().toString());
intent.putExtras(bundle);
startActivity(intent);

Activity2.java

Intent intent = new Intent(Activity1.this,Activity2.class);
Bundle bundle = this.getIntent().getExtras();
String title = bundle.getString("title");
tv = (TextView)findViewById(R.id.projectTitle);
tv.setText(title);
bundle.putString("tit",title);

Activity3.java

undle bundle = this.getIntent().getExtras();
tv = (TextView)findViewById(R.id.Projecttitle);
tv.setText(til);

它在activity1和activity2中运行良好,但在activity2和activity3

之间没有运行

2 个答案:

答案 0 :(得分:2)

您的代码无效,因为您没有从activity3.java中的bundle获取字符串值,

更新activity2.java中的以下代码

Intent intent = new Intent(Activity1.this,Activity2.class);
intent.putExtra("title",tv.getText().toString());
startActivity(intent);

并在Activity3.java的onCreate()方法中更新以下代码

Bundle bundle = getIntent().getExtras();
String til = bundle.getString("title");
TextView tv = (TextView)findViewById(R.id.Projecttitle);
tv.setText(til);

它将解决您的问题。

答案 1 :(得分:2)

您需要将数据置于意图中,以便将数据从第二个活动设置为第三个活动。如果您无法静止,请将实际添加数据的代码发布到第二个活动中的意图以及第三个活动中获取数据的位置。

试试这个:

Intent intent = new Intent(Activity2.this,Activity3.class);

intent.putExtra("title",title)
startActivity(intent);

获取第三项活动的价值:

String title = getIntent().getStringExtra("title");

注意:当您的标题未在第二个活动中更改时,您无需像putextra方法中的editText.getText().toString();那样执行此步骤。