Java ListView充满了复选框--它们都疯了

Java ListView充满了复选框--它们都疯了,java,android,Java,Android,我需要你的帮助。我对Android非常陌生,在Eclipse中使用最新的2.1 SDK进行开发 这真的很简单。我制作了一个包含复选框小部件的列表视图 我的代码: public class HelloAndroid extends Activity { static final String[] COUNTRIES = new String[] { "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorr

我需要你的帮助。我对Android非常陌生,在Eclipse中使用最新的2.1 SDK进行开发

这真的很简单。我制作了一个包含复选框小部件的列表视图

我的代码:

public class HelloAndroid extends Activity {

    static final String[] COUNTRIES = new String[] {
        "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
        "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
        "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
        "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium"}; 

    protected ListView myList;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        myList = (ListView)findViewById(R.id.myList);
        ArrayAdapter<String> myAdapter = new ArrayAdapter<String>(this, R.layout.row, R.id.myBox, COUNTRIES); 
        myList.setAdapter(myAdapter);
    }
}
这是布局XML文件row.XML,由一个复选框组成:

<?xml version="1.0" encoding="utf-8"?>
<CheckBox
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/myBox"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"/>
现在,如果COUNTRIES数组中有足够的字符串,您可以滚动列表,您将看到,如果选中一个复选框并向下滚动,则会自动选中另一个复选框。如果您选中更多的复选框,则会自动选中更多的复选框,或者选中的复选框会被取消选中

我还尝试了XML中的复选框的android:focusable=false,以及一些类似的线程中描述的android:focusableInTouchMode,但似乎没有任何帮助


看起来这是一个bug???

发生的事情是Android正在重用它创建的复选框视图来显示列表以节省内存。Android没有为列表中的每个项目创建一个新的复选框,而是创建一个足以填满屏幕的复选框,更新它们以显示当前可见项目的相关数据

如果适配器中的数据与视图中复选框的状态之间没有链接,则会出现许多复选框被链接的情况,而实际上是同一个复选框具有不同的标签

您是否已设置ListView的设置?如果您这样做,这将告诉ListView跟踪您选择的内容


也可以考虑使用“复选框”。

所发生的事情是Android正在重新使用它创建的复选框视图来显示列表以保存内存。Android没有为列表中的每个项目创建一个新的复选框,而是创建一个足以填满屏幕的复选框,更新它们以显示当前可见项目的相关数据

如果适配器中的数据与视图中复选框的状态之间没有链接,则会出现许多复选框被链接的情况,而实际上是同一个复选框具有不同的标签

您是否已设置ListView的设置?如果您这样做,这将告诉ListView跟踪您选择的内容


也可以考虑使用复选框。

使用复选框CycMeMod,使用R.LayOut.SimeLeListItMyStay3作为您提供给AdayAdvor的布局。将ListVIEW CyCyMeDE设置为Couice SyMeDyMuldithANKS,StCySyMyDelistVist.CouSeSyMod多个作品,如一个魅力。如何使用SimpleExpandableListAdapter将布尔值绑定到复选框/CheckedTextView的状态?。不太确定要执行什么操作。在ListView上调用GetCheckEditePositions无法提供什么?如果适配器中的数据与视图中复选框的状态之间没有链接,我指的是您的语句。。。我想我可以在适配器中启动复选框/CheckedTextView的状态,就像我对它们的标签所做的那样。要使用复选框选项模式,您必须使用自定义适配器而不是SimpleExpandableListAdapter,-使用R.layout.simple_list_item_checked作为您提供给阵列适配器的布局-将listView choiceMode设置为CHOICE_MODE_MULTIPLEThanks,设置ChoiceModelListView.CHOISE_MODE_多个功能就像一个符咒。如何使用SimpleExpandableListAdapter将布尔值绑定到复选框/CheckedTextView的状态?。不太确定要执行什么操作。在ListView上调用GetCheckEditePositions无法提供什么?如果适配器中的数据与视图中复选框的状态之间没有链接,我指的是您的语句。。。我想我可以在适配器中启动复选框/CheckedTextView的状态,就像我对它们的标签所做的那样。您必须使用自定义适配器,而不是SimpleExpandableListAdapter