单击某些ListView项目时如何拨打特定号码

时间:2018-03-28 20:46:33

标签: java android

我做了很多困难。我设置了一个ListView,当点击Item时,手机就会开始拨打电话。

当我点击第一个ListView项目时,拨号器会在短时间内显示标题First Item,然后继续显示一系列随机数字,这与某些事情有关字符串value

基本上我想要的是在点击ListView中的特定项目时拨打某个电话号码。

这可能吗?如果是这样,怎么样?

希望这是有道理的,请告诉我是否需要进一步澄清。

ListView simpleList;
    final String contactList[] = {"First Item", "Second Item", "Third Item"};

    simpleList = (ListView)findViewById(R.id.contact_list);
    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.activity_contact_list_view, R.id.textView, contactList);
    simpleList.setAdapter(arrayAdapter);

    simpleList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @SuppressLint("MissingPermission")
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String value = (String)parent.getItemAtPosition(position);

            Intent callIntent = new Intent(Intent.ACTION_CALL);
            callIntent.setData(Uri.parse("tel:" + value));

            startActivity(callIntent);

        }
    });

1 个答案:

答案 0 :(得分:1)

好的,如果你有position,你可以将它用作数组内元素的索引

 final String contactList[] = {"First Item", "Second Item", "Third Item"};
 final String phonesList[] = {"First Item", "Second Item", "Third Item"};

使用position从阵列中获取联系人:

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    //String value = (String)parent.getItemAtPosition(position);
    String contact = contactList[position];

    Intent callIntent = new Intent(Intent.ACTION_CALL);
    callIntent.setData(Uri.parse("tel:" + phonesList[position])); //***
    startActivity(callIntent);
}