としてカスタムベースアダプタを使用することができます。これにより、一度に1つだけを選択できるようになりますが、チェックを元に戻して選択したものが表示されるようにすることで、これを変更することができます。
public class CheckBoxGridAdapter extends BaseAdapter{
LayoutInflater inflater;
ArrayList<Holder> list;
int res;
Context context;
public CheckBoxGridAdapter(Context context, ArrayList<Holder> list, int layoutResourceId) {
inflater = LayoutInflater.from(context);
this.context = context;
this.list =list;
this.res = layoutResourceId;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
convertView = inflater.inflate(res,
parent, false);
holder = new ViewHolder();
holder.tv1 = (TextView) convertView.findViewById(R.id.checkBoxTxt);
holder.cb = (CheckBox) convertView.findViewById(R.id.checkBox);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
Holder h = list.get(position);
holder.tv1.setText(h.getCBName());
holder.cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if(isChecked)
{
int pos = (Integer) buttonView.getTag();
checkChecks(pos);
}
CheckBoxGridAdapter.this.notifyDataSetChanged();
}
});
holder.cb.setTag(position);
holder.cb.setChecked(list.get(position).getSelectState());
return convertView;
}
protected void checkChecks(int pos) {
for(int i = 0;i<list.size();i++)
{
Holder h = (Holder) list.get(i);
if(i==pos)
{
Log.d(pos +" checked","is checked");
h.setSelectState(true);
}
else
{
Log.d(i +" checked","is not checked");
h.setSelectState(false);
}
}
}
static class ViewHolder
{
TextView tv1;
CheckBox cb;
RadioButton rb;
}
}
+1あなたのフォロワーです、あなたはあなたが行うようにアンドロイドについてもっと知るために何をすべきか(読んで/見る)教えてくださいできます!あなたの答え。 – MKJParekh
親切な言葉のためのThanx私はいつも一日の話題を学び、そして私とあなたのブログをやっています。 –
インド、私はまた、物事をSOに来て、私が知りませんし、それについての質問と答えを得る少なくとも一つの話題を見つける。しかし、いつかいつかは退屈している/それをやって疲れている..しかし、皆さんは私を励まし続ける。 – MKJParekh