所有项目在ListView中拨打相同的号码

时间:2018-03-28 16:51:42

标签: java android

点击ListView项目后,我已成功允许我的应用程序拨打号码(在本例中为123)。但是,我有三个ListView项,我希望它们都能拨打单独的数字。例如:

项目1:123

项目2:321

项目3:231

目前,他们都拨打了123号电话。

任何有关区分ListItems的帮助都将不胜感激。

ListView simpleList;
        String contactList[] = {"X", "Y", "Z"};

        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:123"));

                startActivity(callIntent);

            }
        });

1 个答案:

答案 0 :(得分:1)

看起来好像你正在将值传递给你的意图硬编码为callIntent.setData(Uri.parse("tel:123"));这当然会提供相同的电话号码。内置活动从此意图启动后,它将通过我们作为程序员的方式提取数据。

String telephoneNumber = getIntent().getExtraString("Telephony")

活动意图收到的字符串是您在callIntent.setData()内分配的字符串。因此,为了向拨号器提供合适的电话号码,您需要在那里设置相应的字符串。我不确定你如何设置关于电话号码的contactList。但是,一旦你知道你的联系方式,你所要做的就是获取他们的电话号码并在此处分配:

callIntent.setData(Uri.parse("tel:" + telephoneNumber));