gpt4 book ai didi

android - 检查 EditText 值时出现空指针异常

转载 作者:行者123 更新时间:2023-11-29 14:55:17 24 4
gpt4 key购买 nike

当我这样做时我得到一个空指针异常:

EditText[] answers;

//在 oncreate 方法中我这样做:这是在 setContent() 方法之后设置的。

   answers=new EditText[6];
answers[0]=(EditText) findViewById(R.id.editText1);
answers[1]=(EditText) findViewById(R.id.editText2);
answers[2]=(EditText) findViewById(R.id.editText3);
answers[3]=(EditText) findViewById(R.id.editText4);
answers[4]=(EditText) findViewById(R.id.editText5);
answers[5]=(EditText) findViewById(R.id.editText6);

在按钮的 onClickListener 中我放了这个:

nextQuestion_btn.setOnClickListener(new View.OnClickListener() 
{
for(EditText item : answers) {
if(item.getText().toString().equals("")) { //nuller Exception here
editTextIsEmpty=true;
break;
}
}
}

为什么我在 if 语句中得到空指针异常...?

更新;我将所有的 EditText 放入一个数组中。所有代码都在 onCreate 方法中

这是我得到的:

 11-29 16:11:24.076: E/AndroidRuntime(616): FATAL EXCEPTION: main
11-29 16:11:24.076: E/AndroidRuntime(616): java.lang.NullPointerException
11-29 16:11:24.076: E/AndroidRuntime(616): at com.NewOrder.SetTest$1.onClick(SetTest.java:95)
11-29 16:11:24.076: E/AndroidRuntime(616): at android.view.View.performClick(View.java:2485)
11-29 16:11:24.076: E/AndroidRuntime(616): at android.view.View$PerformClick.run(View.java:9080)
11-29 16:11:24.076: E/AndroidRuntime(616): at android.os.Handler.handleCallback(Handler.java:587)
11-29 16:11:24.076: E/AndroidRuntime(616): at android.os.Handler.dispatchMessage(Handler.java:92)
11-29 16:11:24.076: E/AndroidRuntime(616): at android.os.Looper.loop(Looper.java:123)

最佳答案

answers = new EditText[7];
answer1 = (EditText) findViewById(R.id.editText1);
answer2 = (EditText) findViewById(R.id.editText2);
answer3 = (EditText) findViewById(R.id.editText3);
answer4 = (EditText) findViewById(R.id.editText4);
answer5 = (EditText) findViewById(R.id.editText5);
answer6 = (EditText) findViewById(R.id.editText6);

应该是:

answers = new EditText[6];
answers[0] = (EditText) findViewById(R.id.editText1);
answers[1] = (EditText) findViewById(R.id.editText2);
answers[2] = (EditText) findViewById(R.id.editText3);
answers[3] = (EditText) findViewById(R.id.editText4);
answers[4] = (EditText) findViewById(R.id.editText5);
answers[5] = (EditText) findViewById(R.id.editText6);

否则,如前所述,您永远不会向answers 数组添加任何内容。在我看来,您认为 answer1answer6 将进入您的 answers 数组,除非您在其他地方声明了那些您没有吨张贴。 answers 数组中的所有 6 个 EditTexts 当前都是 null,这会导致您的异常。

此外,像这样的东西会更简洁:

int[] editTexts = { R.id.editText1, R.id.editText2, R.id.editText3, 
R.id.editText4, R.id.editText5, R.id.editText6 };

EditText[] answers = new EditText[editTexts.length];

for(int i = 0; i < answers.length; i++) {
answers[i] = (EditText)findViewById(editTexts[i]);
}

关于android - 检查 EditText 值时出现空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8313708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com