Android 需要确定是否选中listview中的复选框
我已经使用LayoutFlator创建了listview。Listview包含每行的复选框和文本视图。我正在列表视图中显示默认选中复选框的项目。我可以选中\n取消选中这些项目 现在在同一个布局上,我有一个按钮,在这个按钮的clickevent下,我想检查哪个项目的复选框处于选中状态,哪个项目没有 有人知道怎么检查这个吗 我的充气机代码是:Android 需要确定是否选中listview中的复选框,android,Android,我已经使用LayoutFlator创建了listview。Listview包含每行的复选框和文本视图。我正在列表视图中显示默认选中复选框的项目。我可以选中\n取消选中这些项目 现在在同一个布局上,我有一个按钮,在这个按钮的clickevent下,我想检查哪个项目的复选框处于选中状态,哪个项目没有 有人知道怎么检查这个吗 我的充气机代码是: public View getView(int position, View convertView, ViewGroup parent) { Vie
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
try {
mydbadapter.open();
if (view == null) {
LayoutInflater vi = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = vi.inflate(R.layout.syncissue_row, null);
}
issue = (TextView) view.findViewById(R.id.issuedescription);
checkbox = (CheckBox) view.findViewById(R.id.issueCheckBox);
issue.setText(arrlstFaults.get(position));
checkbox.setChecked(true);
} catch (SQLException e) {
mydbadapter.close();
e.printStackTrace();
} finally {
mydbadapter.close();
}
return view;
}
我的答案不是标准答案,但如果你没有其他选择,你可以试试。 您可以更新
getView()
方法,如下面所示
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
try {
mydbadapter.open();
if (view == null) {
LayoutInflater vi = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = vi.inflate(R.layout.syncissue_row, null);
}
issue = (TextView) view.findViewById(R.id.issuedescription);
checkbox = (CheckBox) view.findViewById(R.id.issueCheckBox);
issue.setText(arrlstFaults.get(position));
// add bellow line
checkbox.setOnCheckedChangeListener(new MyCheckedChangeListener(position));
checkbox.setChecked(true);
} catch (SQLException e) {
mydbadapter.close();
e.printStackTrace();
} finally {
mydbadapter.close();
}
return view;
}
您可以编写监听器来更改检查事件。有点像贝娄。您可以维护一个哈希表来存储检查状态,如下所示
Hashtable ht = new Hashtable<Integer, Boolean>();
class MyCheckedChangeListener implements OnCheckedChangeListener
{
int position = -1;
myCheckedChangeListener(int position){
this.position = position;
}
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
ht.put(position, isChecked);
}
}
Hashtable ht=newhashtable();
类MyCheckedChangeListener实现OnCheckedChangeListener
{
int位置=-1;
myCheckedChangeListener(int位置){
这个位置=位置;
}
@凌驾
检查更改后的公共无效(复合按钮视图,布尔值已检查){
ht.put(位置,已检查);
}
}
我希望它对你有用。看这里