应用程序在SetOnClickListener中的TextView.setText()时崩溃

时间:2015-07-07 08:47:59

标签: java android android-layout android-activity

我想在setOnClickListener中设置TextView,但点击按钮时应用会崩溃。 Id都是一样的,一切都已初始化

我的活动:

public class SpielActivity extends Activity {

    TextView fehleranzahl;
    Button buttonA, buttonB, buttonC, buttonD;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_spiel);

        fehleranzahl = (TextView) findViewById(R.id.fehleranzahl);
        fehleranzahl.setText("0");
        initializeButtons();

        buttonA.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                buttonA.setVisibility(View.INVISIBLE);
                fehleranzahl.setText(klartextWort);
            }
        });
    }

    private void initializeButtons() {
        buttonA = (Button) findViewById(R.id.A);
        buttonB = (Button) findViewById(R.id.B);
        buttonC = (Button) findViewById(R.id.C);
        buttonD = (Button) findViewById(R.id.D);
    }

fehleranzahl.setText("0");没有任何问题,但是 fehleranzahl.setText(klartextWort);中的buttonA.setOnClickListener崩溃了该应用。

我的activity.xml:

<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0099cc"
tools:context=".SpielActivity">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/fehleranzahl"
                android:layout_gravity="right|top"
                android:textSize="35sp"
                android:textColor="#FFFFFF"
                android:gravity="bottom"/>

            <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="A"
                android:id="@+id/A"
                android:layout_row="1"
                android:layout_column="1" />

            <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="B"
                android:id="@+id/B"
                android:layout_row="1"
                android:layout_column="2" />

            <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="C"
                android:id="@+id/C"
                android:layout_row="1"
                android:layout_column="3" />

            <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="D"
                android:id="@+id/D"
                android:layout_row="1"
                android:layout_column="4" />

6 个答案:

答案 0 :(得分:0)

确保klartextWort已初始化,且为String

String klartextWort = "Some random text";
fehleranzahl.setText(klartextWort);

如果klartextWorttextbox,请从中获取文字并进行设置。

fehleranzahl.setText(klartextWort.getText().toString());

答案 1 :(得分:0)

设置字符串f()

String klartextWort = "fanny pick text";

然后用try catch包围。

答案 2 :(得分:0)

您似乎尚未初始化klartextWort

首先在顶部用值初始化它,如下所示:

String klartextWort = "Default text";

答案 3 :(得分:0)

'setText()'接受CharSequesnce或String或int值。 int,如果您在资源文件夹的string.xml中声明了字符串值。

如果要将文本设置为“klartextWort”,则fehleranzahl.setText("klartextWort");

否则初始化'klartextWort'并设置文本。代码应该像

String klartextWort = "your  string"; 
fehleranzahl.setText(klartextWor");

答案 4 :(得分:0)

在你的代码中没有像'klartextWort'那样的东西。尝试将字符串设置为该变量,如

String klartextWort = "Sample String" 

答案 5 :(得分:0)

如果klartextWort是您在String中定义的strings.xml,则必须放入R.string.klartextWort

我认为这就是问题所在。