android有关问题:在下上文中怎么删除ListView中的信息

android问题:在上下文中如何删除ListView中的信息package com.xiehande.listViewHomework.activityimport

android问题:在上下文中如何删除ListView中的信息
package com.xiehande.listViewHomework.activity;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.MenuItem.OnMenuItemClickListener;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

public class MaiinActivity extends ListActivity {
ListAdapter adapter;
String mColumnNames[] = new String[] { "name", "address", "phone" };
int mViewIds[] = new int[] { R.id.txtName, R.id.txtAddress, R.id.txtPhone };
TextView txtNameTV;
public Menu menu;
private int menuItemId=Menu.FIRST;//初始值为1
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
private List<Map<String, Object>> getData() {

Map<String, Object> map = new HashMap<String, Object>();

map.put("name", "aaa");
map.put("address", "ccv");
map.put("phone", "12345");
list.add(map);

map = new HashMap<String, Object>();
map.put("name", "bbb");
map.put("address", "sdd");
map.put("phone", "114");
list.add(map);

map = new HashMap<String, Object>();
map.put("name", "ccc");
map.put("address", "ssc");
map.put("phone", "321");
list.add(map);

map = new HashMap<String, Object>();
map.put("name", "ddd");
map.put("address", "ssc");
map.put("phone", "821");
list.add(map);
return list;
}

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.getListView().addHeaderView(this.getLayoutInflater().inflate(R.layout.header_view, null), null, false);
 adapter = new SimpleAdapter(this, this.getData(), R.layout.row_ui, mColumnNames, mViewIds);
this.setListAdapter(adapter);
//注册上下文菜单
registerForContextMenu(getListView());

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
this.menu=menu;
addMenu();
return super.onCreateOptionsMenu(menu);
}



@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
super.onCreateContextMenu(menu, v, menuInfo);


menu.setHeaderTitle("上下文菜单");
menu.setHeaderIcon(R.drawable.face);
menu.add(1, menuItemId, 1, "删除该联系人");
menu.add(1, menuItemId, 2, "修改该联系人");
menu.add(1, menuItemId, 3, "标记该联系人");

}


private  int selectedId=0;
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
selectedId=position;
Log.i("MaiinActivity", String.valueOf(selectedId));
}

@Override
public boolean onContextItemSelected(MenuItem item) {
//这样可以获取长按着弹出上下文菜单的LIstView点击的ID值
AdapterView.AdapterContextMenuInfo menuInfo=(AdapterContextMenuInfo) item.getMenuInfo();
    final int id=(int) menuInfo.id;
    if (-1 == id) {
        super.onContextItemSelected(item); 
       }

    switch (item.getItemId()) {
case 1:
Log.i("MaiinActivity", String.valueOf(menuInfo.position));
Log.i("MaiinActivity", String.valueOf(id));
list.remove(id);
//this.adapter.notifyAll();break;
case 2:
break;
default:
break;
}
   
return super.onContextItemSelected(item);
}

private void addMenu() {
MenuItem addMenuItem=menu.add(0, menuItemId++, 1, "添加联系人");
addMenuItem.setIcon(R.drawable.file);
addMenuItem.setOnMenuItemClickListener(menuItemClickListener);
MenuItem deleteMenuItem=menu.add(0, menuItemId, 2, "联系人设置");
deleteMenuItem.setIcon(R.drawable.icon);
addMenuItem.setOnMenuItemClickListener(menuItemClickListener);
}
private OnMenuItemClickListener menuItemClickListener=new OnMenuItemClickListener() {

@Override
public boolean onMenuItemClick(MenuItem item) {
// TODO Auto-generated method stub
Intent intent;
if(item.getItemId()==1){
     intent=new Intent(MaiinActivity.this, ProcessActivity.class);
    startActivityForResult(intent, R.layout.process);
}else if(item.getItemId()==2){
   //联系人设置没有处理
}
return true;
}
};

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case R.layout.process:
if (resultCode == 20) {
Bundle bundle=data.getExtras();
String name=bundle.getString("name");
String address=bundle.getString("address");
String phone=bundle.getString("phone");
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", name);
map.put("address", address);
map.put("phone",phone);
list.add(map);
} else if (resultCode == 21) {
                Toast.makeText(MaiinActivity.this,"你取消了操作", Toast.LENGTH_LONG).show();
                
}
break;

default:
break;


}

}


}



代码已经附上去了。千万不要在网上找人家的例子给我浮上来。因为我也是搜寻了很多的解决方法。按理说,应该正确。但是,只要我加上红色的那两句代码的其中一句就会崩溃了。不知道为啥,麻烦大家教我如何解决。为什么就删除不了list中的选项了都
[解决办法]
更新adapter呗 adapter.notifyDataSetChanged();
[解决办法]
notify(),notifyAll()是Object的方法~
[解决办法]

引用:
更新adapter呗 adapter.notifyDataSetChanged(); 

嗯,楼上说的对。确实是需要更新.但是我的adapter是SimpleAdapter,没有这个方法。我之前还想找这个方法试试。但是就是找不到,就只要notify(),notifyAll()。
那么,怎么解决呢?改下SimpleAdapter还是???


继承的BaseAdapter怎么会没有这方法