如何操作由自定义游标适配器填充的列表视图中的数据

时间:2014-02-17 06:05:50

标签: android android-listview

我已使用自定义光标适配器填充了列表视图,该列表视图由以下方式的checkboxbutton组成。

checkbox1 button1
checkbox2 button2
.
.
.

现在我想在单击列表视图中的按钮时导航到另一个活动现在我的问题是当我点击button1然后我想要查看checkbox1中的数据以及其他行的类似情况。

现在我对如何在复选框和按钮之间保持sync以及如何实现点击功能感到困惑,任何人都可以建议我一个出路。

由于 希瓦

5 个答案:

答案 0 :(得分:1)

您需要在实现onclickListener

的列表视图中找到相应的视图

例如

    listView.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

            Button b = (Button)v.findViewById(R.id.button);
                            b.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                                  Intent i=new Intent(this,SecondActivity.Class)
                                   startActivity(i);    
                           }
            });
                            //Similarly for the checkbox
        }
    });

答案 1 :(得分:1)

如果ButtononClickListener共享同一个父母

,您可以在Button CheckBox上执行以下操作
boldButton.setOnClickListener(new OnClickListener()
{

    @Override
    public void onClick(View view)
    {
       View parentView = (View) view.getParent();
       CheckBox checkBox = (CheckBox) parentView.findViewById(R.id.check);
    }
});

这会为您提供与所点击的CheckBox

对应的Button

答案 2 :(得分:1)

在适配器类中使用ViewHolder类,并在getView()中使用该类,然后在getView

中使用
viewHolder.yourButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(viewHolder.checkbox.isChecked())
                                // toggle the check and do your work here
        }
    });

您可以通过非常简单的

了解ViewHolder模式here

另一个例子link

答案 3 :(得分:0)

Selectable ListView Tutorial链接应该有助于您的解决方案。

答案 4 :(得分:0)

查看此帖子可能有所帮助。 您必须在listview中保留行的状态,以便可以使用其状态填充行。

  

Android how to identify item in listview with checkbox