繁体   English   中英

当我尝试更新 TextView 时崩溃

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM