gpt4 book ai didi

java - 从 OnClickListener 启动 ACTION_DIAL Intent - android - Java

转载 作者:行者123 更新时间:2023-12-01 12:25:12 26 4
gpt4 key购买 nike

我有一个ListView,它显示用户信息和一个调用按钮。现在我想创建一个拨号操作,因此我在 getView 方法中使用了以下代码:

   Button callB = (Button)  convertView.findViewById(R.id.bCall);
callB.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + user.getPhoneNumber())));
}
});

但是,startActivity 方法在 OnClickListener 中不可用。我该如何解决这个问题?

任何帮助将不胜感激。

最佳答案

我假设这段代码位于您的 ArrayAdapter 中,并且 getView() 方法用于获取每个列表项的 View 。如果是这种情况,您可以将每个用户的电话号码存储在 HashMap 中,将按钮的指针 id 映射到该号码,然后让数组适配器本身实现 View.OnClickListener 来接收 View 的点击事件:

public class myAdapter extends ArrayAdapter implements View.OnClickListener{
HashMap<int, String> mMap;

public myAdapter(){
mMap = new HashMap<int, String>;
}

@Override
public View getView(int position, View view, ViewGroup container){
// initialize view . . .
. . .

Button callB = (Button) convertView.findViewById(R.id.bCall);
callB.setOnClickListener(this);
mMap.put(callB.getId(), "phone-number-goes-here");

. . .
}

@Override
public void onClick(View v){
if (mMap.containsKey(v.getId())){
getActivity().startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + mMap.get(v.getId())));
}

}

}

关于java - 从 OnClickListener 启动 ACTION_DIAL Intent - android - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26412490/

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