android中上下文菜单的创建-----比如长按某个按钮删除数据

1.在ListView控件初始化后为此控件注册一个上下文菜单
registerForContextMenu(lv_call_sms_safe);
2.在res目录下建立menu目录,在此目录下创建一个menu的xml文件。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/update_number"
        android:title="更改黑名单号码">
    </item>
    <item
        android:id="@+id/delete_number"
        android:title="删除黑名单号码">
    </item>

</menu>


3.重新Acitivity的onCreateContextMenu方法,
@Override
	public void onCreateContextMenu(ContextMenu menu, View v,
			ContextMenuInfo menuInfo) {
		super.onCreateContextMenu(menu, v, menuInfo);
		MenuInflater inflater = getMenuInflater();
		inflater.inflate(R.menu.context_menu, menu);
		
	}


4.重新Activity的onContextItemSelected方法,处理相关的业务操作
@Override
	public boolean onContextItemSelected(MenuItem item) {
		AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
		int id = (int) info.id;
		String number = numbers.get(id);
		switch (item.getItemId()) {
		case R.id.update_number:
			updateNumber(number);
			
			break;
		case R.id.delete_number:
			dao.delete(numbers.get(id));
			numbers = dao.getAllNumbers();
			adapter.notifyDataSetChanged();
			break;
	
		}
		return false;
	}


你可能感兴趣的:(android中上下文菜单的创建-----比如长按某个按钮删除数据)