我有带复选框的列表视图。和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);
答案 0 :(得分:0)
当您使用ArrayList移动到其他活动时,只需删除之前已存在的数据。 在ResultActivity.class中,重写onBackPressed方法并编写代码以删除ArrayList中的所有数据。
arrayList.remove(object);
因此,如果您返回并单击该按钮,将显示包含新数据的ArrayList。检查一下。希望它会对你有所帮助。