学习android作为业余兴趣,边学边做了个小应用。昨天用到了listview长按事件,弹出下拉菜单,把这作为个知识点,供以后学习用。
首先,假设listview已经有数据,不管是从sqlite中获取还是程序内固定的值,下面直接给出长按事件的写法。
activiy中:
//ListView lvjzw;// listview显示列表
lvjzw.setOnCreateContextMenuListener(lvjzwOnCreateContextMenuListener);
/** * 长按弹出下拉菜单,此事件中可弹出下拉框 */ OnCreateContextMenuListener lvjzwOnCreateContextMenuListener = new OnCreateContextMenuListener() {
@Override public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo) { menu.setHeaderTitle("共享给联系人");//标题 menu.add(0,1,"使用短信发送给好友");//下拉菜单 // menu.add(0,2,"弹出式菜单2"); } };
/** * 长按菜单响应函数 并获取选中的listview行内容 */ @Override public boolean onContextItemSelected(MenuItem item) {
ContextMenuInfo info = item.getMenuInfo(); AdapterView.AdapterContextMenuInfo contextMenuInfo = (AdapterContextMenuInfo) info; // 获取选中行位置 int position = contextMenuInfo.position; // 获取问题内容 question = dataRecordList.get(position).getQuestion(); Toast.makeText(JzwActivity.this,question+"===",Toast.LENGTH_SHORT).show();
/********************************到此为止,即可获取到长按那一列listview中的值*****************************************************************************************/
// 调用手机联系人,发送短信 Intent intent = new Intent(); intent.setAction(Intent.ACTION_PICK); intent.setData(Contacts.Phones.CONTENT_URI); startActivityForResult(intent,PICK_CONTACT_SUBACTIVITY); return super.onContextItemSelected(item); }
长按某一行,弹出下拉菜单,如图
点击后,在Toast中显示选中内容 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|