无法从其他活动更新TextView

时间:2011-06-27 08:48:35

标签: java android textview

我有一个需要从第二个活动更新的TextView活动。 我可以将Text视图数据传递给第二个活动,但是当我尝试更新TextView时 在第二次活动中它崩溃了。我的代码:

第一个活动(我的xml中定义了TextView):

Intent intent = new Intent(1stactivity.this, 2ndactivity.class); 
intent.putExtra("homescore_value", ((TextView)findViewById(R.id.score_home)).getText());
startActivity(intent);

// code snippet

然后在我的第二个活动中:

Bundle bundle = getIntent().getExtras();
hometext = bundle.getString("homescore_value"); // this works and displays the correct String from 1st activity, 

但是当我尝试以TextView

进入时,它会崩溃
// other code snipped
int homescore = 0;
String Home_nickname = "HOME ";

TextView homestext = (TextView) bundle.get("homescore_value");
hometext.setText(Home_nickname +": "+homescore   );

请帮忙。

4 个答案:

答案 0 :(得分:3)

您正在尝试将String作为TextView(您在第一个Activity的intent中设置String)。

答案 1 :(得分:1)

您尝试将String投射到TextView。崩溃的代码相当于:

String text = bundle.get("homescore_value"); //this is ok
TextView textView = (TextView)text; //this is bad

你应该这样做:

String text = bundle.get("homescore_value");
TextView textView = (TextView)findViewById(R.id.yourTextViewId);
textView.setText(text);

答案 2 :(得分:0)

这一行:

intent.putExtra("homescore_value", ((TextView)findViewById(R.id.score_home)).getText());

将一个String与意图一起附加,而不是TextView。

您必须在第二个活动中为新TextView充气,方法是在layout.xml中声明它,或者以编程方式将其放置在布局中。

答案 3 :(得分:0)

解决了这个问题的部分原因是将接收字符串变量设置为null,如下所示:

public String param1new = null;
public String param2new= null; 

我的问题是我正在尝试在几个TextViews上设置背景颜色,此时只设置了第一个。