我使用ListView填充了一系列问题和答案 每个问题有6个选项(单选);如果我选择任何选项,则先前选择的选项应该无效。
@Override
public View getView(int position, View convertView, ViewGroup viewGroup) {
View views = convertView;
views = inflater.inflate(R.layout.row_question_list, null);
holder = new ViewHolders();
holder.titleQuestion = (TextView)views.findViewById(R.id.tv_quetion_label);
holder.c_option1 = (TextView)views.findViewById(R.id.question);
holder.ibOption1= (ImageButton)views.findViewById(R.id.ibOption1);
holder.ibOption2= (ImageButton)views.findViewById(R.id.ibOption2);
holder.ibOption3= (ImageButton)views.findViewById(R.id.ibOption3);
holder.ibOption4 = (ImageButton)views.findViewById(R.id.ibOption4);
holder.ibOption5 = (ImageButton)views.findViewById(R.id.ibOption5);
holder.ibOption6 = (ImageButton)views.findViewById(R.id.ibOption6);
holder.ibOption6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Need to select current selection and invalide previous selection.
// For current selection
((ImageButton) view).setSelected(type);
}
});
return views;
}
如何获取其他选项的视图?
答案 0 :(得分:0)
最简单和更好的解决方案是在row_question_list
中使用Radio Group,里面有六个单选按钮。您可以进一步将父级广播组的方向更改为horizontal
以获得上方视图。最终可以获得所选的单选按钮。
<RadioGroup>
<RadioButton>
<RadioButton>
<RadioButton>
<RadioButton>
<RadioButton>
<RadioButton>
</RadioGroup>
此外,您可以自定义背景并使用它们设置问题文本。
对于上面的视图,您可以使用state_selected = true
和state_selected = false
的图像绘制可绘制的内容,每次单击每个按钮后,您可以更改视图中所有其余按钮的按钮状态,甚至是可以改变背景。
holder.ibOption6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
holder.ibOption1.setBackgroundResource(your background);
holder.ibOption2.setBackgroundResource(your background);
holder.ibOption3.setBackgroundResource(your background);
holder.ibOption4.setBackgroundResource(your background);
holder.ibOption5.setBackgroundResource(your background);
}
});
,您必须为所有按钮设置此项。或者您可以尝试notifyDataSetChanged();.