0
我正在实现一个Android应用程序,其中有一个列表视图。 这个列表视图的每个元素都有一个切换按钮,并且使用扩展了BaseAdapter的自定义适配器,我设法得到哪些切换按钮被选中,哪些不被选中。 但是,如果我想对这些切换按钮施加限制,该怎么办?假设当我检查第二个切换按钮时,我希望第一个切换按钮也被自动检查。 我该怎么办? 感谢Android列表视图:如何在列表项之间施加约束
public class MyCustomAdapter<T> extends BaseAdapter {
Context mContext; //the application context
LayoutInflater mInflater; //object that is used to set the layout of the View
ArrayList<T> mList; //list of the items shown in the user interface
SparseBooleanArray mSparseBooleanArray; //object that is used to keep track of the selected items of the list
ToggleButton[] toggleButtons;
public MyCustomAdapter(Context context, ArrayList<T> list) {
this.mContext = context;
mInflater = LayoutInflater.from(mContext);
mSparseBooleanArray = new SparseBooleanArray();
mList = new ArrayList<T>();
this.mList = list;
toggleButtons = new ToggleButton[list.size()];
}
public View getView (int position, View convertView, ViewGroup parent) {
if(convertView == null) {
convertView = mInflater.inflate(R.layout.list_item_with_toggle, null);
}
toggleButtons[position] = (ToggleButton)convertView.findViewById(R.id.toggleEnable);
switch (position){
case 0:
toggleButtons[position].setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Toast.makeText(mContext, ""+0, Toast.LENGTH_SHORT).show();
}
});
break;
case 1:
toggleButtons[position].setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//Toast.makeText(mContext, ""+isChecked, Toast.LENGTH_SHORT).show();
if(isChecked) {
if(!toggleButtons[0].isChecked()) {
// Toast.makeText(mContext, "elemento 1 "+toggleButtons[1].isChecked(), Toast.LENGTH_SHORT).show();
toggleButtons[0].setChecked(true);
} else {
//things to do if toggleButtons[0] == true
}
} else {
//things to do if isChecked == false
}
}
});
break;
default:
break;
}
return convertView;
}
}
对不起,我还没有线索怎么办。请耐心等待。当我设置第二个切换按钮时,我能做些什么来设置第一个切换按钮? – rosekarma 2014-10-27 17:12:03
你可以发布你的代码吗? – Philio 2014-10-27 17:12:52