Android 如何使用位置或索引替换listView中单击的项
我正在使用todolist应用程序,无法在listview中编辑项目。“编辑”按钮与“添加”按钮类似。旧项目不会被删除。当使用(ListView.getSelectedItemPosition(),myobject)程序时,会给出arrayindexoutofboundsexception 这里是EditItem.javaAndroid 如何使用位置或索引替换listView中单击的项,android,listview,android-listview,Android,Listview,Android Listview,我正在使用todolist应用程序,无法在listview中编辑项目。“编辑”按钮与“添加”按钮类似。旧项目不会被删除。当使用(ListView.getSelectedItemPosition(),myobject)程序时,会给出arrayindexoutofboundsexception 这里是EditItem.java editButton.setOnClickListener(new OnClickListener() { @Override public
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();
}
});
editButton.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图arg0){
//ArrayList b=新的ArrayList();
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();
日期=日+“/”+月+“/”+年;
itemList.setName(任务);
itemList.setPriorityLevel(priorityLevel);
itemList.setStatus(状态);
itemList.setDueDate(日期);
Intent=newintent();
putExtra(“editItem”,新的数据包装器(itemList));
设置结果(Activity.RESULT_OK,okinent);
完成();
}
});
和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);
}
todoListView.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
意向编辑意向=新意向(MainActivity.this,
编辑项(类);
startActivityForResult(编辑意图,编辑注释);
}
});
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
if(resultCode==Activity.RESULT\u确定){
开关(请求代码){
案例编辑注意:
DataWrapper dw2=(DataWrapper)数据
.getSerializableExtra(“编辑项”);
entry=dw2.getEntry();
设置(todoListView.getSelectedItemPosition(),条目);
ToDoarayAdapter.notifyDataSetChanged();
打破
违约:
打破
}
}
super.onActivityResult(请求代码、结果代码、数据);
}
您可以尝试从单击中给出位置
todoListView.setOnItemClickListener(new OnItemClickListener()
到全局整数
然后做:
todoItems.set(globalInt, entry);