我正在使用ListView的很酷的功能来显示ListView中项目旁边的复选框.我将列表绑定到一个字符串数组.onClick和onSelectedItem侦听器被调用得很好,这样我知道检查(或未选中)"字符串"的索引.
我将所有已检查的字符串存储到首选项中(作为逗号连接字符串),每次活动变得可见时,我想在列表视图中设置已检查的项目.
有办法吗?或者CHOICE_MODE_MULTIPLE不允许设置检查项目?
注意:我没有使用自定义视图,因为我想要显示的只是一个字符串和一个复选框.我已经尝试了setSelection(索引)但它应该设置唯一一个选中(突出显示)的行.
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,names);
m_playlists_list.setAdapter(adapter);
m_playlists_list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
Run Code Online (Sandbox Code Playgroud) 使用光标适配器时,我无法找到保存复选框状态的方法.其他一切工作正常,但如果我点击一个复选框,它会被重复使用.我见过使用数组适配器的例子,但由于我缺乏经验,我发现很难将其转换为使用游标适配器.有人能给我一个如何去做的例子.任何帮助赞赏.
private class PostImageAdapter extends CursorAdapter {
private static final int s = 0;
private int layout;
Bitmap bm=null;
private String PostNumber;
TourDbAdapter mDbHelper;
public PostImageAdapter (Context context, int layout, Cursor c, String[] from, int[] to, String Postid) {
super(context, c);
this.layout = layout;
PostNumber = Postid;
mDbHelper = new TourDbAdapter(context);
mDbHelper.open();
}
@Override
public View newView(Context context, final Cursor c, ViewGroup parent) {
ViewHolder holder;
LayoutInflater inflater=getLayoutInflater();
View row=inflater.inflate(R.layout.image_post_row, null);
holder = new ViewHolder();
holder.Description = (TextView) row.findViewById(R.id.item_desc);
holder.cb …Run Code Online (Sandbox Code Playgroud)