有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我已经完成了最难的部分。我设置了一个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) 个答案

  1. # 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);
    }