简单的TextView导致崩溃

时间:2019-06-14 00:08:10

标签: android

这是非常简单的代码,但是当我初始化TextView时,应用程序崩溃了。

我是一个初学者,所以我不知道我做错了什么...。但是我认为代码看起来不错。 Android Studio也不会报告任何错误。

int counterint = 0;
TextView counter = findViewById(R.id.countertv);

public void pressthebutton(View view){
    counterint++;
    counter.setText(counterint);
}

5 个答案:

答案 0 :(得分:2)

您可能在类实例化期间设置了TextView。您应该按照以下步骤更新代码:

int counterint = 0;
TextView counter;

public void onCreate (Bundle savedInstance) {
    super.onCreate(savedInstance);
    setContentView(<your_layout>);

    // Set the textView only after setContent.. Otherwise, findViewById will return null
    counter = findViewById(R.id.countertv);
}


public void pressthebutton(View view){
    counterint++;
    counter.setText(Integer.toString(counterInt));
}

答案 1 :(得分:0)

尝试以这种方式设置textview:

public void pressthebutton(View view){
    counterint++;
    counter.setText(String.valueOf(counterInt));
}

答案 2 :(得分:0)

该错误导致,因为您直接将一个整数值分配给TextView。将整数或任何数据类型分配给TextView时,最好将其转换为String

int counterint = 0;
TextView counter = findViewById(R.id.countertv);

public void pressthebutton(View view){
    counterint++;
    counter.setText(Integer.toString(counterint));
}

otherview,您可以先将Integer值转换为字符串,然后按如下所示将其分配给TextView

int counterint = 0;
TextView counter = findViewById(R.id.countertv);
String counterString = Integer.toString(counterint)

public void pressthebutton(View view){
    counterint++;
    counter.setText(counterString);
}

答案 3 :(得分:0)

尝试

counter.setText(counterint+"");

它会自动将字符串值设置为textview

答案 4 :(得分:0)

您可以尝试以下方法:

public void pressthebutton(View view){
    counter.setText(String.valueOf(++counterint));
}