Android 如何在listview的每一行中放置复选框?

Android 如何在listview的每一行中放置复选框?,android,listview,Android,Listview,我有一个从基本适配器获取值的列表视图。我想要的是,单击按钮,属性不可见的复选框将可见并显示在列表视图的每一行的前面。我可以解决这个问题,但只在几行前面获取复选框。我厌倦了搜索这个东西。我觉得问题出在获取列表视图的某个地方,该视图只获取当时屏幕上可见的行的视图。因为我在这个领域很新,我无法获得确切的问题。任何帮助都是非常值得赞赏的 ///复选框出现在四行中,然后在两行之间的间隙后再次出现,依此类推..// button.setOnClickListener(this);

我有一个从基本适配器获取值的列表视图。我想要的是,单击按钮,属性不可见的复选框将可见并显示在列表视图的每一行的前面。我可以解决这个问题,但只在几行前面获取复选框。我厌倦了搜索这个东西。我觉得问题出在获取列表视图的某个地方,该视图只获取当时屏幕上可见的行的视图。因为我在这个领域很新,我无法获得确切的问题。任何帮助都是非常值得赞赏的

///复选框出现在四行中,然后在两行之间的间隙后再次出现,依此类推..//

       button.setOnClickListener(this);
            public void onClick(View v) {
                        // TODO Auto-generated method stub 

        //relative layout in which button is declared        
                RelativeLayout relative=(RelativeLayout)v.getParent();

        //listview is first child of relative..            
         ListView lv=(ListView)relative.getChildAt(1);

                        for(int i=0;i<lv.getChildCount();i++){

     ////////relative layout in whichcheckbox is declared                        
    RelativeLayout newrelative=(RelativeLayout)lv.getChildAt(i);

    //checkbox is forth child of newrelative..

    CheckBox cb=(CheckBox)newrelative.getChildAt(4);
     cb.setVisibility(0);
                        } 

                }//method
button.setOnClickListener(此);
公共void onClick(视图v){
//TODO自动生成的方法存根
//声明按钮的相对布局
RelativeLayout relative=(RelativeLayout)v.getParent();
//listview是relative的第一个子项。。
ListView lv=(ListView)relative.getChildAt(1);

对于(int i=0;i您可以在…

listview
小部件回收其视图,这就是为什么您在上下滚动时会看到更改的原因。 要解决此问题,您应该覆盖列表适配器,并在其中决定是否显示
复选框
。 最好的方法可能是将这些数据保存到数据库中。 然后在getView方法中添加-

if (*i should see a checkbox next to this item*) {
    checkbox.setVisibility(View.VISIBLE);
} else {
    checkbox.setVisibility(View.INVISIBLE);
}
“else”很重要,因为否则它会将可见的
此处输入代码
复选框与您不希望有
复选框的项目重复使用


希望有帮助。

hi的可能副本已找到任何解决方案。如果是,请重播我。我已经阅读了本文,并按照教程中描述的方式完成了操作,但我希望所有这些都只需单击按钮即可完成。