android contextmenu listview,在android中使用带有listview的contextmenu

Kamil Sewery..

33

要从所选的ListView项中获取项,请参阅ContextMenuInfo对象(请参阅下面的上一个实现方法).完整解决方案如下:

1)在ListActivity类中为上下文菜单注册ListView

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// ...

getListView().setAdapter(mAdapter);

registerForContextMenu(getListView());

}

1a)如果您的列表中有复杂的View,则可能需要长度单击Adapter类中的每个列表视图

@Override

public View getView(int position, View convertView, ViewGroup parent) {

View view = convertView;

if (view == null) {

RelativeLayout layout = (RelativeLayout) LayoutInflater.from(mContext).inflate(R.layout.list_item, parent, false);

itemLayout = layout;

itemLayout.setLongClickable(true);

}

// ...

return view;

}

2)在ListActivity类中实现onCreateContextMenu()和onContextItemSelected()

@Override

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {

super.onCreateContextMenu(menu, v, menuInfo);

AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;

String title = ((MyItem) mAdapter.getItem(info.position)).getTitle();

menu.setHeaderTitle(title);

menu.add(Menu.NONE, MENU_CONTEXT_DELETE_ID, Menu.NONE, DELETE_TEXT);

}

@Override

public boolean onContextItemSelected(MenuItem item) {

switch (item.getItemId()) {

case MENU_CONTEXT_DELETE_ID:

AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();

Log.d(TAG, "removing item pos=" + info.position);

mAdapter.remove(info.position);

return true;

default:

return super.onContextItemSelected(item);

}

}

制作**longclickable = true**是救生员.感谢名单. (2认同)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值