选中并取消选中Checkbox与另一个Activiti的Listview

时间:2014-04-14 08:09:32

标签: android listview checkbox

我有带复选框的列表视图。和Checked Items存储到另一个Array-list中。在另一个布局上设置。但是当我回到当前活动并更改复选框的选择时,另一个活动的数组列表不会丢弃先前的选择。怎么解决? 这是我的代码。

enno = (CheckBox) convertView.findViewById(R.id.titleTxt);
            enno.setText(arrStudentList.get(position).getEnno());
            enno.setOnClickListener( new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                     Log.e("dr","hello11");

                selectedStudents.add(String.valueOf(arrStudentList.get(position).getEnno()));

                    Log.e("dr",String.valueOf(selectedStudents.size()));
                     Toast.makeText(getApplicationContext(), String.valueOf(arrStudentList.get(position).getEnno()), Toast.LENGTH_SHORT).show();

............................
............................
public void onClick(View v) {
    SparseBooleanArray checked = listView.getCheckedItemPositions();


    for (int i = 0; i < checked.size(); i++) {
        // Item position in adapter
        int position = checked.keyAt(i);
        // Add sport if it is checked i.e.) == TRUE!
        if (checked.valueAt(i))
           selectedStudents.add(String.valueOf(arrStudentList.get(position).getEnno()));
    }

    String[] outputStrArr = new String[selectedStudents.size()];
    Log.e("dr","hello14");
    Log.e("dr",String.valueOf(selectedStudents.size()));

    for (int i = 0; i < selectedStudents.size(); i++) {
        outputStrArr[i] = selectedStudents.get(i);
        Log.e("dr","hello15");
    }

    Intent intent = new Intent(getApplicationContext(),
            ResultActivity.class);

    // Create a bundle object
    Bundle b = new Bundle();
    b.putStringArray("selectedStudents", outputStrArr);

    // Add the bundle to the intent.
    intent.putExtras(b);

    // start the ResultActivity
    startActivity(intent);

1 个答案:

答案 0 :(得分:0)

当您使用ArrayList移动​​到其他活动时,只需删除之前已存在的数据。 在ResultActivity.class中,重写onBackPressed方法并编写代码以删除ArrayList中的所有数据。

   arrayList.remove(object);

因此,如果您返回并单击该按钮,将显示包含新数据的ArrayList。检查一下。希望它会对你有所帮助。