0

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);
}
4

1 に答える 1

0

onItemClick から位置を指定してみることができます

todoListView.setOnItemClickListener(new OnItemClickListener()

グローバルintに。

そして、次のようにします。

todoItems.set(globalInt, entry);
于 2013-11-11T17:01:16.557 に答える