gpt4 book ai didi

java - Android - 无法从 ListView 中调用不同的电话号码但显示不同的电话号码

转载 作者:行者123 更新时间:2023-11-30 00:45:19 25 4
gpt4 key购买 nike

下面是 ListView 适配器扩展基础适配器的 View 方法

public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (convertView == null) {
vi = inflater.inflate(R.layout.contact_people_list_item, null);
callPeopleContact = (ImageButton) vi.findViewById(R.id.people_contact_call_icon);
try {
jsonTotalObject = this_dataJsonArray.getJSONObject(position);
jsonUserObject = jsonTotalObject.getJSONObject("User");
telephone = jsonUserObject.getString("office_phone");
intentToCall = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + telephone));
callPeopleContact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if (ActivityCompat.checkSelfPermission(this_context, android.Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
this_context.startActivity(intentToCall);
}
});

});
} catch (JSONException e) {
e.printStackTrace();
}

return vi;
}
return vi;
}

虽然电话号码在 ListView 中显示完全不同,但当我单击调用图标时,所有列表项的电话号码都是相同的。这是为什么?感谢您的宝贵时间。

最佳答案

快速修复

与其创建 intentToCall 类级变量,不如使用 final 修饰符在本地定义它,它将完成这项工作。

改变

intentToCall = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + telephone));

final Intent intentToCall = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + telephone));

详细解释:

当您创建 intent 实例变量时,变量每次都将保持不变,并在您向下/向上滚动时继续使用新值重新初始化,并将精确地保存滚动项目的值

关于java - Android - 无法从 ListView 中调用不同的电话号码但显示不同的电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41889963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com