我正在将 ListActivity 类与 simple_list_item_checked -layout结合使用,该实现复选框实现简单列表项。一切正常 - 单击添加的项目调用onListItemClick(),我可以通过'View v'参数检查/取消选中相应的条目复选框。
然而,我无法弄清楚的是,如何(预先)选择没有任何用户交互的复选框?
到目前为止最小的工作代码片段显示了我的意图:
package org.test;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.CheckedTextView;
import android.widget.ListView;
public class TestActivity extends ListActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayAdapter<String> list_elems = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked);
list_elems.add("foobar");
//TODO: check added entry labeled "foobar"
setListAdapter(list_elems);
}
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
CheckedTextView check = (CheckedTextView)v;
check.setChecked(!check.isChecked());
}
}
提前多多感谢!
回到名单Daten
答案 0 :(得分:2)
这对我有用:
您必须将基础ListView的choicemode设置为单个或多个。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayAdapter<String> list_elems = new ArrayAdapter<String>(this, Android.R.layout.simple_list_item_checked);
list_elems.add("foobar");
//TODO: check added entry labeled "foobar"
setListAdapter(list_elems);
ListView lv = getListView();
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
lv.setItemChecked(0, true);
}
答案 1 :(得分:0)
使用SimpleListAdapter
作为ListAdctivity的ListAdapter。使用两列(一列用于字符串,另一列用于检查值),系统应自行处理。这是一个很好的example