自定义列表视图删除android中的行

时间:2011-04-25 14:55:59

标签: android

我在我的应用程序中使用自定义列表视图。在所有行的自定义列表视图中,我放置了一个图像按钮。如果我单击该图像按钮,我必须删除自定义列表视图中的单击按钮行。谁能告诉我怎么做?以下编码不起作用:

imgcross=(ImageView)v.findViewById(R.id.imgcross);
 imgcross.setId(position);

 if(v.getId()==R.id.imgcross)
        {
            Log.d("image id is",Integer.toString(imgcross.getId()));
            myScheduleList.removeViewAt(imgcross.getId());
            Toast.makeText(MyScheduleDay0RequestedMeeting.this, "Cross Button is Clicked", Toast.LENGTH_LONG).show();   

        }






 if (v.getId()==R.id.imgcross) 
{ //Integer index=(Integer)imgcross.getTag(); 
//Log.d("image id is",Integer.toString(index)); 
int index=imgcross.getId(); (imgcross.getId()); 
MyScheduleBean.listName.remove(index); 
MyScheduleBean.dateValue.remove(index); 
MyScheduleBean.dateValue.remove(index); 
CAdapter = new CustomAdapter(this,MyScheduleBean.listName,MyScheduleBean.dateValue,MyScheduleBe­an.meeting,R.layout.myschedule_day0_requestedmeetingrow,to);
myScheduleList.setAdapter(CAdapter);
} 

由于

2 个答案:

答案 0 :(得分:0)

您需要从基础Adapter中删除数据。如果操作正确,则会自动更新ListView。否则,也请在notifyDataSetChanged()上致电Adapter,这将导致ListView更新。

答案 1 :(得分:0)

我一直在寻找这个答案太久了 - 非常感谢你。 从数据库中删除记录后:

DBRecordOperation.deleteRecord(dbRecord);

只需使用以下命令从ListView中删除记录:

adapter.remove(dbRecord);

我在ListView中长按一下就可以了。 onContextItemSelected的完整代码是:

@Override
public boolean onContextItemSelected(MenuItem item){

    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
    DBRecord dbRecord = (DBRecord) getListAdapter().getItem(info.position);
    int dbRecordId = dbRecord.getId();

    DBRecordOperation.deleteRecord(dbRecord);
    adapter.remove(dbRecord);


    return true;

}