我正在编写一个非常基本的程序,该程序的目的是在屏幕上按下按钮后在文本视图中显示短语“ Hello”,但无法弄清楚为什么每次运行它时都表示应用程序意外停止。
这是我写的程序:
public class EtudeActivityActivity extends Activity{
TextView tvResponse;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final TextView tvResponse = (TextView) findViewById (R.id.tvResponse);
}
public void updateTV(View v) {
tvResponse.setText("Hello");
}
}
另外,我在按钮的main.xml文件中插入了
android:onClick = "updateTV"
。谢谢你的帮助!
最佳答案
这是因为您没有设置tvResponse
成员变量。而是用相同的名称设置新的局部变量。因此,当您呼叫setText()
时,您正在访问无效的引用
你需要改变
final TextView tvResponse = (TextView) findViewById (R.id.tvResponse);
至
tvResponse = (TextView) findViewById (R.id.tvResponse);
设置成员变量,因此以后有一个有效的引用(调用
updateTV()
时)