如何从 onItemClicklistener 上的联系人 ListView 获取 phone_Number

Posted

技术标签:

【中文标题】如何从 onItemClicklistener 上的联系人 ListView 获取 phone_Number【英文标题】:How to get a phone_Number from contacts ListView on onItemClicklistener 【发布时间】:2020-10-11 11:39:42 【问题描述】:

我已经创建了一个有效的联系人列表,但是当我点击任何联系人时,我只能从 ListView 获得 android 屏幕上第一个项目的联系人号码。

我想获取该职位的点击联系人的电话号码。 我在网上到处搜索,但没有得到任何解决方案,我在过去 13 天试图解决这个问题,但我仍然无法解决这个问题,如果有人可以解决这个问题,请回答。 感谢兄弟/姐妹的帮助!


li.setOnItemClickListener(new AdapterView.OnItemClickListener() 
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) 

TextView txtNummber = li.findViewById(android.R.id.text2)

);

【问题讨论】:

如果应用程序崩溃,请发布您的堆栈跟踪。见:***.com/questions/3988788/… 能否也提供xml代码,以便我在Android Studio中重新创建并尝试解决问题? 光标是你的数据结构,位置是你数据结构中的元素位置,所以使用 setOnItemClickListener 内部的位置。 【参考方案1】:

在您的onItemClick() 中,您使用的是li.findViewById()

但是,onItemClick() 返回View 作为点击项的参数,official documentation 中也提到了这一点。

因此,尝试将其更新为

TextView txtNummber = view.findViewById(android.R.id.text2).

检查它是否有效。

【讨论】:

成功了。多谢兄弟!你能告诉我如何过滤联系人并在我们的联系人应用程序中获取搜索到的联系人吗?我会在这个问题上再增加 50 个赏金。 @GopalMeena 此外,要使用SimpleCursorAdapter 过滤列表,您可以检查this code 或this。【参考方案2】:

您可以将此Contact Lib 用于任何类型的过滤器。我建议您使用Recyclerview 而不是ListView。在RecyclerView中实现搜索check this out。

Recylerview 性能优于Listview。如果您在实施中有任何问题,请告诉我。

【讨论】:

以上是关于如何从 onItemClicklistener 上的联系人 ListView 获取 phone_Number的主要内容,如果未能解决你的问题,请参考以下文章

从 onItemClickListener 中的 JSON 对象获取 id

如何在 OnItemClickListener 中应用通知?

执行长按时如何防止 OnItemClickListener 工作?

如何在 simpleadapter 中实现 OnItemClickListener?代码删除、更新等,

将数据从片段列表视图项传递到活动字符串变量 onitemclicklistener

onItemClickListener 未在自定义 ArrayAdapter 上触发