나는 동적 인 라디오 버튼을 가진 listview를 가지고있다. (그것은 listview에서 몇가지 질문의 크기에 기초하여 만들 것이다. ie, 첫 번째 질문에 대해 나는 4 개의 라디오 버튼을 가지고있다. ..). 내 문제는 사용자가 라디오 버튼을 사용하여 대답을 선택하면 해당 양식을 제출해야한다는 것입니다. 그렇다면 선택한 답변과 함께 어떻게 목록보기 데이터를 얻을 수 있습니까? 또한 질문에 대한 응답 여부를 확인해야합니다 (라디오 그룹 확인). 제출할 때 전체 데이터가 필요합니다. 누구든지이 문제에 대해 도움이 될 수 있습니다. 목록 항목을 렌더링하는 동안 android의리스트 뷰에있는 Radiogroup
이
이 어댑터 의 getView() 방법에서 내의 getViewpublic View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
final ViewHolder viewHolder = new ViewHolder();
view = View.inflate(mContext, R.layout.item_list_bradenscale_entry, null);
viewHolder.txtQuestionHeadName = (TextView) view.findViewById(R.id.textview_question_name);
viewHolder.radioGroup = (RadioGroup) view.findViewById(R.id.radio_group);
viewHolder.radioButtonOption1 = (RadioButton) view.findViewById(R.id.radio1);
viewHolder.radioButtonOption2 = (RadioButton) view.findViewById(R.id.radio2);
viewHolder.radioButtonOption3 = (RadioButton) view.findViewById(R.id.radio3);
viewHolder.radioButtonOption4 = (RadioButton) view.findViewById(R.id.radio4);
viewHolder.txtQuestionHeadHint = (TextView) view.findViewById(R.id.textview_question_hint);
viewHolder.txtOption1Hint = (TextView) view.findViewById(R.id.textview_option1Hint);
viewHolder.txtOption2Hint = (TextView) view.findViewById(R.id.textview_option2Hint);
viewHolder.txtOption3Hint = (TextView) view.findViewById(R.id.textview_option3Hint);
viewHolder.txtOption4Hint = (TextView) view.findViewById(R.id.textview_option4Hint);
view.setTag(viewHolder);
selectedList = new
final DataContractQuestionList myDataitem = arrData.get(position);
viewHolder.txtQuestionHeadName.setText(myDataitem.QuestionTitle);
viewHolder.txtQuestionHeadHint.setText(myDataitem.QuestionHint);
viewHolder.radioButtonOption1.setText(myDataitem.QuestionOptions.get(0).OptionTitle);
viewHolder.radioButtonOption2.setText(myDataitem.QuestionOptions.get(1).OptionTitle);
viewHolder.radioButtonOption3.setText(myDataitem.QuestionOptions.get(2).OptionTitle);
viewHolder.txtOption1Hint.setText(myDataitem.QuestionOptions.get(0).OptionHint);
viewHolder.txtOption2Hint.setText(myDataitem.QuestionOptions.get(1).OptionHint);
viewHolder.txtOption3Hint.setText(myDataitem.QuestionOptions.get(2).OptionHint);
if (myDataitem.QuestionOptions.size() < 4) {
viewHolder.radioButtonOption4.setVisibility(View.INVISIBLE);
viewHolder.txtOption4Hint.setVisibility(View.INVISIBLE);
} else {
viewHolder.radioButtonOption4.setText(myDataitem.QuestionOptions.get(3).OptionTitle);
viewHolder.txtOption4Hint.setText(myDataitem.QuestionOptions.get(3).OptionHint);
viewHolder.radioButtonOption4.setChecked(myDataitem.QuestionOptions.get(3).checkedStatus);
}
viewHolder.radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
int selectedRadioButton = group.getCheckedRadioButtonId();
View radioButton = group.findViewById(selectedRadioButton);
int radioId = group.indexOfChild(radioButton);
if (radioId/2 == 0) {
viewHolder.radioButtonOption1.setChecked(true);
myDataitem.QuestionOptions.get(0).checkedStatus = true;
myDataitem.QuestionOptions.get(1).checkedStatus = false;
myDataitem.QuestionOptions.get(2).checkedStatus = false;
if (myDataitem.QuestionOptions.size() == 4) {
myDataitem.QuestionOptions.get(3).checkedStatus = false;
}
} else if (radioId/2 == 1) {
viewHolder.radioButtonOption2.setChecked(true);
myDataitem.QuestionOptions.get(0).checkedStatus = false;
myDataitem.QuestionOptions.get(1).checkedStatus = true;
myDataitem.QuestionOptions.get(2).checkedStatus = false;
if (myDataitem.QuestionOptions.size() == 4) {
myDataitem.QuestionOptions.get(3).checkedStatus = false;
}
} else if (radioId/2 == 2) {
viewHolder.radioButtonOption3.setChecked(true);
myDataitem.QuestionOptions.get(0).checkedStatus = false;
myDataitem.QuestionOptions.get(1).checkedStatus = false;
myDataitem.QuestionOptions.get(2).checkedStatus = true;
if (myDataitem.QuestionOptions.size() == 4) {
myDataitem.QuestionOptions.get(3).checkedStatus = false;
}
} else if (radioId/2 == 3) {
if (myDataitem.QuestionOptions.size() == 4) {
viewHolder.radioButtonOption4.setChecked(true);
myDataitem.QuestionOptions.get(0).checkedStatus = false;
myDataitem.QuestionOptions.get(1).checkedStatus = false;
myDataitem.QuestionOptions.get(2).checkedStatus = false;
myDataitem.QuestionOptions.get(3).checkedStatus = true;
}
}
}
});
viewHolder.radioButtonOption1.setChecked(myDataitem.QuestionOptions.get(0).checkedStatus);
viewHolder.radioButtonOption2.setChecked(myDataitem.QuestionOptions.get(1).checkedStatus);
viewHolder.radioButtonOption3.setChecked(myDataitem.QuestionOptions.get(2).checkedStatus);
return view;
}
선택한 상태를 저장하려면 동일한 배열을 사용하십시오. 그런 다음 상태에 따라 확인 된 데이터를 가져 와서 보낼 수 있습니다. –
게시 됨 내 getview() – Sri