我有一个问题,被困了一段时间, 我不知道如何在列表中添加一个复选框,例如,如果我有一个项目列表,我希望能够检查它们。我的xml代码如下:
<LinearLayout android:id="@+id/topLayout"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_centerHorizontal="true" android:layout_height="wrap_content">
</LinearLayout>
<LinearLayout
android:id="@+id/middleLayout"
android:orientation="horizontal"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<LinearLayout android:id="@+id/leftMiddleLayout"
android:orientation="vertical" android:layout_below="@+id/topLayout"
android:layout_above="@+id/bottomLayout"
android:layout_width="60px" android:layout_height="wrap_content"
>
<ListView android:id="@+id/checkboxList" android:layout_width="fill_parent"
android:layout_height="wrap_content" ></ListView>
<CheckBox android:id="@+id/checkbox"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:checked="false"
android:text="test">
</CheckBox>
</LinearLayout>
<LinearLayout android:id="@+id/rightMiddleLayout"
android:orientation="vertical" android:layout_below="@+id/topLayout"
android:layout_above="@+id/bottomLayout"
android:layout_width="280px" android:layout_height="wrap_content"
>
<ListView android:id="@+id/list" android:layout_width="fill_parent"
android:layout_height="wrap_content" ></ListView>
<TextView android:id="@+id/text" android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
<LinearLayout android:id="@+id/bottomLayout"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:paddingBottom="5pt"
>
<EditText android:id="@+id/insertNewItem"
android:layout_width="220px" android:layout_height="wrap_content" />
<TextView android:layout_width="10px" android:layout_height="wrap_content" />
<Button android:id="@+id/addItemButton" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:text="Add Item"/>
</LinearLayout>
如果您有任何想法,请告诉我,我的学术研究:((
谢谢!
答案 0 :(得分:5)
final ListView lView = (ListView) findViewById(R.id.ListView01);
lView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, items));
lView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
这里的项目是一个数组。
答案 1 :(得分:3)
我建议您在android开发网站上观看此视频,了解如何Make your Android UI Fast and Efficient。它将为您提供解决问题的代码,并向您展示实现适配器的正确方法,以确保它尽可能快。
答案 2 :(得分:3)
public class myAdapter extends SimpleCursorAdapter {
public myAdapter(Context context, int layout, Cursor cursor, String[] from, int[] to) {
super(context, layout, cursor, from, to);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
cb=(CheckBox)view.findViewById(R.id.cb);
cb.setText(dbgetStringValue);
cbText=(TextView)view.findViewById(R.id.cbText);
cbText.setText(dbgetStringValue);
cb.setChecked(false);
cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton cb, boolean isChecked) {
if(cb.isChecked()) {
// action
}
else if(isChecked==false) {
// action
}
}
});
}
}
是你想要的吗?
答案 3 :(得分:0)
如果您使用setAdapter()在listView上使用ListAdapter(例如自定义BaseAdapter),您可以在适配器的getView()中使用LayoutInflater来为列表条目提供您喜欢的任何布局。这可以包括CheckBox。
答案 4 :(得分:0)
或者您可以将任何ListAdapter扩展到子类并覆盖bindView。如果你要为ChecBoxes设置.setText!