如何从联系方式获取电话号码?

时间:2013-07-12 17:05:29

标签: java arrays string

我有两个String[],一个有姓名,另一个有电话号码。如果我从列表中选择一个名称,如何从对话框中拨打该人的电话号码。例如,第一个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(); 
            }
        });
    }
} 

1 个答案:

答案 0 :(得分:2)

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

您有两种选择以更好的方式实现它:

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