我的应用程序包含2个活动。第一个活动包含TextView
,如果您点击它,则转到包含ListView
和按钮Done的第二个活动。 ListView
包含TextViews
CheckBox
。如果单击按钮,则完成活动并返回所选文本项。如果您返回列表视图,则会恢复所选复选框。
代码将不胜感激。
答案 0 :(得分:2)
首先,我建议您使用CheckedTextView控件而不是CheckBox& TextView中。 CheckedTextView作为复选框和textview的组合,易于处理和实现。
其次,你应该有一个与ListView no一样的布尔的ArrayList。的项目。然后,您可以在ListView的OnListItemClick函数中相应地设置ArrayList项。在代码中的任何时间和任何地方,您都可以获得ListView选择的参考。它简单而有效。
以下是OnListItemClick代码示例:
@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
arrCheckBox.set(position, !arrCheckBox.get(position));
CheckedTextView ctvListItem = (CheckedTextView)v.findViewById(R.id.ctvCustomLVRowID);
ctvListItem.setChecked(arrCheckBox.get(position));
}
这里arrCheckBox是一个布尔型ArrayList,它保留了我们选择的记录,这个数组的大小与no相同。 ListItems。我希望你现在能搞清楚。
答案 1 :(得分:1)
XML文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<ListView android:id="@+id/ListView01" android:layout_height="wrap_content"
android:layout_width="fill_parent"></ListView>
</LinearLayout>
Java代码:
public class ListViewMultipleChoiceExample extends Activity {
private ListView lView;
private String lv_items[] = { "Android", "iPhone", "BlackBerry",
"AndroidPeople", "J2ME", "Listview", "ArrayAdapter", "ListItem",
"Us", "UK", "India" };
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
lView = (ListView) findViewById(R.id.ListView01);
// Set option as Multiple Choice. So that user can able to select more
// the one option from list
lView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice, lv_items));
lView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
}
}