如何获取从多选列表视图中选择的项目?

时间:2014-02-24 14:41:18

标签: android sqlite

我想收集课堂上的学生名单。以下的出勤活动课程是参加学生的出勤 此活动显示学生名单。

AttendanceActivity.class

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.attendancelist);

    try {
        setListAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_multiple_choice,
                new ArrayList()));

        new AddStringTask().execute();
    } catch (Exception e) {
        Toast.makeText(getApplicationContext(), "Null", Toast.LENGTH_LONG)
                .show();
    }

}
    public void submit(View v){
    ArrayList<String> presentRoll = new ArrayList<String>(); 

    int len = getListAdapter().getCount();
    SparseBooleanArray checked = l.getCheckedItemPositions();
    for (int i = 0; i < len; i++)
        if (checked.get(i)) {
            presentRoll.add(object)

        }
}

在内部提交按钮以收集学生卷号的最佳方法是什么。从列表视图?

1 个答案:

答案 0 :(得分:0)

Listview list;

final SparseBooleanArray mSelectedItemsIds = new SparseBooleanArray();
//cast the list
//set the adapter...
....

list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            if (!mSelectedItemsIds.get(position)) {
                list.setItemChecked(position, true);
                 presentRoll.add(list.getItemAtPosition(position)

            } else {
                 list.setItemChecked(position, false);
                mSelectedItemsIds.delete(position);
                presentRoll.remove(position)
            }


        }
    });
希望它有所帮助!

相关问题