【发布时间】:2010-01-18 13:37:14
【问题描述】:
我需要你的帮助。我真的是 Android 新手,在 Eclipse 中使用最新的 2.1 SDK 进行开发。
这真的很简单。我制作了一个充满 Checkbox 小部件的 ListView。
我的代码:
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);
}
}
这是 Layout-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-Array 中有足够的字符串,并且您可以滚动列表,您将看到,如果您选中一个 CheckBox 并向下滚动,则会自动选中另一个 CheckBox。如果您选中更多复选框,则会自动选中更多复选框,或者取消选中已选中的复选框。
我还尝试过 android:focusable="false" 用于 CheckBox(在 XML 中)以及 android:focusableInTouchMode,如一些类似线程中所述,但似乎没有任何帮助...
看起来是个bug??
【问题讨论】: