Android 需要确定是否选中listview中的复选框

Android 需要确定是否选中listview中的复选框,android,Android,我已经使用LayoutFlator创建了listview。Listview包含每行的复选框和文本视图。我正在列表视图中显示默认选中复选框的项目。我可以选中\n取消选中这些项目 现在在同一个布局上,我有一个按钮,在这个按钮的clickevent下,我想检查哪个项目的复选框处于选中状态,哪个项目没有 有人知道怎么检查这个吗 我的充气机代码是: public View getView(int position, View convertView, ViewGroup parent) { Vie

我已经使用LayoutFlator创建了listview。Listview包含每行的复选框和文本视图。我正在列表视图中显示默认选中复选框的项目。我可以选中\n取消选中这些项目

现在在同一个布局上,我有一个按钮,在这个按钮的clickevent下,我想检查哪个项目的复选框处于选中状态,哪个项目没有

有人知道怎么检查这个吗

我的充气机代码是:

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(位置,已检查);
}
}
我希望它对你有用。

看这里