0

我在第一个活动中有一个按钮 ( buttton1),第二个活动有一个 textview ( textView1)。这是我写的代码:

public void buttton1 (View v){

Intent buttton1 = new Intent (MainActivity.this, Back.class);

startActivity(buttton1);

TextView textView = (TextView)findViewById(R.id.textView1);

textView.setText("Hello");

finish();

}

当我运行应用程序并单击按钮时,它会强制关闭。所以请帮我看看错在哪里?

4

3 回答 3

1

textView 可能为空,因为它不在您尝试访问它的活动中,而是在您打开的活动中。您应该使用putExtra将文本发送到下一个活动,并更新该活动中的文本视图。

于 2013-08-15T11:47:59.287 回答
0

如果我做对了。textview 属于第二个活动,即 back.class。因此,无论您对 back.class 的组件做什么,都必须在该类的代码中完成。

为了更清楚,让我告诉你两个概念:1)一旦你从另一个活动 B 开始另一个活动 A,控制从 B 转移到 A,因此活动 A 的组件必须在活动 A 中定义和控制。2)让一个按钮做两个功能,即使它实际上是可能的,它适用于同一个活动的组件而不是下一个活动(back.class)。

我希望它清除了几个点。

于 2013-08-15T11:48:27.030 回答
0

因为 textView1 属于您的第二个活动而不是第一个活动。根据您的代码,他们尝试在您的第一个活动中访问 textView1,它在使用 findViewById 时返回 null,第一个活动找不到 ID 为 textView1 的“视图”。这是绝对错误的!

于 2013-08-15T11:54:03.663 回答