加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

listview长按事件 并获取选中行的值

发布时间:2020-12-12 20:39:14 所属栏目:百科 来源:网络整理
导读:学习android作为业余兴趣,边学边做了个小应用。昨天用到了listview长按事件,弹出下拉菜单,把这作为个知识点,供以后学习用。 首先,假设listview已经有数据,不管是从sqlite中获取还是程序内固定的值,下面直接给出长按事件的写法。 activiy中: //ListVi

学习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中显示选中内容

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读