我试图让用户在我的应用程序中创建一个调查,但我正在努力与我的一块代码。用户可以点击“添加答案”,它会添加一个RadioButton/EditText。然后点击“删除答案”,它应该删除这些。它用于删除已添加的第一个Radiobutton/RditText,但如果我已经添加了2个或更多RadioButton,则会引发错误。在Android中添加/删除RadioButton/EditText
任何想法我的代码有什么问题?
mAddAnswer = (Button) v.findViewById(R.id.addAnswer);
mAddAnswer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
RadioButton question = new RadioButton(getActivity().getApplicationContext());
question.setId(newQuestionRadioId);
newQuestionRadioId += 1;
mAnswersGroup.addView(question);
EditText answer = new EditText(getActivity().getApplicationContext());
answer.setInputType(InputType.TYPE_CLASS_TEXT);
answer.setId(newQuestionId);
newQuestionId += 1;
answer.setHint("Enter answer");
mAnswerHolder.addView(answer);
questionNumber += 1;
}
});
mRemoveAnswer = (Button) v.findViewById(R.id.removeAnswer);
mRemoveAnswer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (mAnswersGroup.getChildCount() > 1) {
mAnswersGroup.removeViewAt(newQuestionRadioId - 1);
mAnswerHolder.removeViews(questionNumber - 1, questionNumber - 1);
newQuestionId -= 1;
newQuestionRadioId -= 1;
questionNumber -= 1;
}
}
});
的logcat:
02-16 16:39:49.295: E/AndroidRuntime(2532): FATAL EXCEPTION: main
02-16 16:39:49.295: E/AndroidRuntime(2532): java.lang.NullPointerException
02-16 16:39:49.295: E/AndroidRuntime(2532): at android.view.ViewGroup.removeViewsInternal(ViewGroup.java:2231)
02-16 16:39:49.295: E/AndroidRuntime(2532): at android.view.ViewGroup.removeViews(ViewGroup.java:2179)
02-16 16:39:49.295: E/AndroidRuntime(2532): at com.example.surveymetest.AddQuestionFragment$2.onClick(AddQuestionFragment.java:106)
02-16 16:39:49.295: E/AndroidRuntime(2532): at android.view.View.performClick(View.java:2485)
02-16 16:39:49.295: E/AndroidRuntime(2532): at android.view.View$PerformClick.run(View.java:9080)
02-16 16:39:49.295: E/AndroidRuntime(2532): at android.os.Handler.handleCallback(Handler.java:587)
02-16 16:39:49.295: E/AndroidRuntime(2532): at android.os.Handler.dispatchMessage(Handler.java:92)
02-16 16:39:49.295: E/AndroidRuntime(2532): at android.os.Looper.loop(Looper.java:130)
02-16 16:39:49.295: E/AndroidRuntime(2532): at android.app.ActivityThread.main(ActivityThread.java:3683)
02-16 16:39:49.295: E/AndroidRuntime(2532): at java.lang.reflect.Method.invokeNative(Native Method)
02-16 16:39:49.295: E/AndroidRuntime(2532): at java.lang.reflect.Method.invoke(Method.java:507)
02-16 16:39:49.295: E/AndroidRuntime(2532): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-16 16:39:49.295: E/AndroidRuntime(2532): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-16 16:39:49.295: E/AndroidRuntime(2532): at dalvik.system.NativeStart.main(Native Method)
你能提供更多关于你接收到什么错误的细节吗? –
logcat的副本会很好。 – NasaGeek
对不起,现在附上。 –