- Добавить
CheckBox
динамически вgetView()
? набора текст для
CheckBox
эсов с различными подсчетами ...В объяснении ...
В Listview
- Вопрос 1 Потребность 5 флажки
- Вопроса 2 требуется 7 флажков
- Вопрос 3 требует 3 флажка
- Вопрос 4 потребности 8 флажки
Это то, что я хочу, и я использовал код ...
@SuppressWarnings("deprecation")
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
view = mLayoutInflater.inflate(R.layout.question_items, null);
final TextView question_number = (TextView) view.findViewById(R.id.qno_text);
final TextView question = (TextView) view.findViewById(R.id.qstn_text);
LinearLayout linear_layout = (LinearLayout) view.findViewById(R.id.linear_vertical);
question_number.setText(question_items.get(position).getQuestionNo());
question.setText(question_items.get(position).getQuestion());
String single_or_multiple = question_items.get(position).getSingleSelect();
if(single_or_multiple.equals("0")) {
final ArrayList<String> answer_check_box = new ArrayList<>();
final ArrayList<String> questions = new ArrayList<>();
final ArrayList<String> questions_in_ques_and_ans = new ArrayList<>();
final ArrayList<String> questions_and_checking = new ArrayList<>();
checkBoxState = new boolean[question_items.get(position).getOptionList().size()];
final int check_size = question_items.get(position).getOptionList().size();
Log.d("Size", String.valueOf(check_size));
for(int i = 0; i<question_items.get(position).getOptionList().size(); i++) {
check_box = new CheckBox(context);
check_box.setGravity(Gravity.CENTER);
check_box.setBackgroundDrawable(getApplication().getResources().getDrawable(R.drawable.fifth_username));
check_box.setPadding(8, 8, 8, 8);
check_box.setText(question_items.get(position).getOptionList().get(i).getOPTIONS());
LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
params.setMargins(10, 10, 10, 10);
check_box.setLayoutParams(params);
check_box.setId(i);
check_box.setTag(i);
check_box.setChecked(false);
check_box.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int id = buttonView.getId();
Log.d("ID", String.valueOf(id));
tag_val = (int) buttonView.getTag();
String tag_value = String.valueOf(tag_val);
Log.d("TAG", tag_value);
Question_Number = question_number.getText().toString();
Question = question.getText().toString();
String value = "";
if(isChecked) {
value = question_items.get(position).getOptionList().get(id).getOPTIONS();
Log.d("checkbox checked value", value);
answer_check_box.add(value);
if(questions.size() > 0) {
if(questions.contains(Question)) {
questions.remove(Question);
questions.add(Question);
} else {
questions.add(Question);
}
} else {
questions.add(Question);
}
Log.d("Answers Checked", answer_check_box.toString());
Log.d("Question Checked", questions.toString());
Answer = answer_check_box.toString();
}else {
value = question_items.get(position).getOptionList().get(id).getOPTIONS();
Log.d("checkbox Unchecked value", value);
answer_check_box.remove(value);
if(answer_check_box.size() > 0) {
} else {
questions.remove(Question);
}
Log.d("Answers Unchecked", answer_check_box.toString());
Log.d("Question UnChecked", questions.toString());
Answer = answer_check_box.toString();
}
if(questions_and_checking.size() > 0) {
Log.d("Size","above 1");
for(int check = 0; check < questions_and_checking.size(); check++) {
questions_in_ques_and_ans.add(questions_and_checking.get(check));
}
Log.d("Questions check", questions_in_ques_and_ans.toString());
Log.d("Que array", ques_and_ans.toString());
if(questions_in_ques_and_ans.contains(Question)) {
Log.d("Contains","Que");
int index = ques_and_ans.indexOf(ques_and_ans.get(position));
Log.d("Index", String.valueOf(index));
ques_and_ans.remove(index);
Question_and_Answer item = new Question_and_Answer();
item.setQustionNumber(Question_Number);
item.setQuestionTitle(Question);
item.setOptionValue(Answer);
ques_and_ans.add(item);
questions_and_checking.add(Question);
} else {
Log.d("Not Contains","Que");
Question_and_Answer item = new Question_and_Answer();
item.setQustionNumber(Question_Number);
item.setQuestionTitle(Question);
item.setOptionValue(Answer);
ques_and_ans.add(item);
questions_and_checking.add(Question);
}
} else {
Log.d("Size", "0");
Question_and_Answer item = new Question_and_Answer();
item.setQustionNumber(Question_Number);
item.setQuestionTitle(Question);
item.setOptionValue(Answer);
ques_and_ans.add(item);
questions_and_checking.add(Question);
Log.d("Check After First add", ques_and_ans.toString());
}
}
});
linear_layout.addView(check_box);
}
} else {
radio_group = new RadioGroup(context);
for(int i=0; i<question_items.get(position).getOptionList().size(); i++) {
radio_button = new RadioButton(context);
radio_button.setGravity(Gravity.CENTER);
radio_button.setBackgroundDrawable(getApplication().getResources().getDrawable(R.drawable.fifth_username));
radio_button.setPadding(8, 8, 8, 8);
radio_button.setText(question_items.get(position).getOptionList().get(i).getOPTIONS());
LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
params.setMargins(10, 10, 10, 10);
radio_button.setLayoutParams(params);
radio_group.addView(radio_button);
}
linear_layout.addView(radio_group);
radio_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup rgp, int checkedId) {
Question_Number =question_number.getText().toString();
Question = question.getText().toString();
radioButtonID = radio_group.getCheckedRadioButtonId();
View radioButton = radio_group.findViewById(radioButtonID);
idx = radio_group.indexOfChild(radioButton);
Log.d("id", String.valueOf(idx));
String answer = question_items.get(position).getOptionList().get(idx).getOPTIONS();
Toast.makeText(getApplicationContext(), answer, 2).show();
Answer = answer;
Question_and_Answer item = new Question_and_Answer();
item.setQustionNumber(Question_Number);
Log.d("Q_no", Question_Number);
item.setQuestionTitle(Question);
Log.d("Qstn", Question);
item.setOptionValue(Answer);
Log.d("Answer", Answer);
ques_and_ans.add(item);
}
});
}
return view;
}
Я не могу иметь возможность получить флажки и радиокнопки позиции ... Потому что, когда я прокручиваю его, он автоматически отключается. Я знаю, что это свойство getView, но как я могу управлять им с помощью этого кода ...
Здесь я использовал Textview, но позже я его поменяю. –
Если у вас всегда есть 4 вопроса, просто используйте ScrollView. –
Нет г-на Явада, у меня «нет» вопросов ... Но варианты ответов на вопросы разные. –