![](/img/trans.png)
[英]Why does my app crash when i try to populate a TextView with an integer value?
[英]Crash when i try to update TextView
我正在尝试做一个计算器应用程序(学校项目),所以我需要一个 TextView 来显示数字。 因为这是我的第一个 Java 项目,所以我一开始就想制作一个计数器来显示按钮被点击的次数(只是为了学习如何使用 TextViews)。 我的问题是,在第一次更新 TextView 之后(当它显示“1”时),当我第二次按下按钮时,它让我崩溃了。
我的代码:
主活动.java
public class MainActivity extends AppCompatActivity {
public Integer number = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView) findViewById(R.id.no1);
ImageButton button = (ImageButton) findViewById(R.id.zeroB);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
number++;
setContentView(R.layout.activity_main);
TextView tv = (TextView) findViewById(R.id.no1);
tv.setText(number.toString());
}
});
}
...
content_main.xml
...
<TextView
android:layout_width="172dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Large Text"
android:id="@+id/no1"
android:layout_gravity="left|top"
android:editable="true" />
...
将您的代码修改为:
public class MainActivity extends AppCompatActivity {
public Integer number = 0;
//i would use this instead of the above
private int number = 0;
private TextView tv;
private ImageButton button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.no1);
button = (ImageButton) findViewById(R.id.zeroB);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
number++;
tv.setText(String.valueOf(number));
}
});
}
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.