java - 如何从联系人中获取电话号码?

标签 java arrays string

我有两个 String[],一个包含姓名,另一个包含电话号码。如果我从列表中选择一个名字,我如何从对话框中调用该人的电话号码。例如,first string[] 中的第一个人的电话号码为 second[]。如何获得该号码?

package com.mkyong.android;

import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class ListFruitActivity extends ListActivity {

    static final String[] Imena = new String[] { "Aleksandar Panic", "Dubravka Protic", "Milutin Panic",
            "Jelica Panic", "Nemanja Gagic", "Doris Dragojevic", "Milica Protic", "Kiki Beba",
            "Dule Savic", "Miroslav Miskovic", "Petar Djuric", "Dragoslav Joksimovic", "Petar Petrovic" };
    static final String[] Brojevi=new String[] { "0638638045", "062450050", "065045324", "05443",
            "06535475", "564218", "546567", "514574","5454333","444787","413133","354867","24879"};

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setListAdapter(new ArrayAdapter<String>(this, R.layout.list_fruit,
                Imena));

        ListView listView = getListView();
        listView.setTextFilterEnabled(true);

        listView.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {


                AlertDialog.Builder adb=new AlertDialog.Builder(ListFruitActivity.this);
                adb.setTitle("Odabir");
                adb.setMessage("Izabrali ste profesora "+parent.getItemAtPosition(position));


                adb.setPositiveButton("Call",new DialogInterface.OnClickListener() {
                    public void onClick (DialogInterface dialog, int which) {
                    Intent i=new Intent(android.content.Intent.ACTION_DIAL,
                        Uri.parse("tel:+651234567")); //here is the problem, how to get the right number
                    startActivity(i);
                    }
                });
                adb.show(); 
            }
        });
    }
} 

最佳答案

为什么你需要两个String[]数组?

您有两种选择可以更好地实现它:

  1. 使用 Map<String, String>将姓名存储为键,将电话号码存储为值。
  2. 创建一个类 Contact存储您的所有联系方式,如姓名、地址、电话号码、电子邮件等,然后使用 List<Contact>或一个数组(推荐的方法)。

关于java - 如何从联系人中获取电话号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17620293/

相关文章:

java - 语法 MySql 插入错误

java - 编写器在关闭时不将文本写入子目录中的文件

C 字符数组用户输入校验长度

sql - 在SQL中将字符串列表转换为Int列表

c - 尝试验证换行符存在后,换行符删除不起作用

java - String.split 导致最后一个索引换行

java - java有频率表吗?

java - 在另一个元素中使用显式等待查找元素

javascript - 将数组解析为等间隔JS

c - 如何将字符串数组的元素复制到另一个字符串变量?