todolist アプリに取り組んでいますが、リストビューでアイテムを編集できません。編集ボタンは追加ボタンのように機能します。古いアイテムは削除されません。(ListView.getSelectedItemPosition(),myobject) プログラムを使用すると、arrayindexoutofboundsexception が発生します。
ここで EditItem.java
editButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// ArrayList<String> b = new ArrayList<String>();
task = editText1.getText().toString();
priorityLevel = spinner.getSelectedItem().toString();
status = toggleButton.getText().toString();
int day = datePicker.getDayOfMonth();
int month = datePicker.getMonth() + 1;
int year = datePicker.getYear();
date = day + "/" + month + "/" + year;
itemList.setName(task);
itemList.setPriorityLevel(priorityLevel);
itemList.setStatus(status);
itemList.setDueDate(date);
Intent okIntent = new Intent();
okIntent.putExtra("editItem", new DataWrapper(itemList));
setResult(Activity.RESULT_OK, okIntent);
finish();
}
});
および MainActivity.java
todoListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent editIntent = new Intent(MainActivity.this,
EditItem.class);
startActivityForResult(editIntent, EDIT_NOTE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
switch (requestCode) {
case EDIT_NOTE:
DataWrapper dw2 = (DataWrapper) data
.getSerializableExtra("editItem");
entry = dw2.getEntry();
todoItems.set(todoListView.getSelectedItemPosition(), entry);
todoArrayAdapter.notifyDataSetChanged();
break;
default:
break;
}
}
super.onActivityResult(requestCode, resultCode, data);
}