使用拆分字符串在警报对话框中获取选定列表项

时间:2014-07-23 17:14:45

标签: android listview split alertdialog

我在strings.xml中有字符串数组,国家电话号码和国家名称用逗号分隔。 现在,我想在对话框中显示此列表,并在编辑文本中显示所选国家/地区的国家/地区电话号码。

显示列表,我可以点击一个项目和一个没有国家名称的数字在编辑文本中显示但不幸的是它总是相同的值。看起来我没有获得点击的项目,但是通过完整列表进行迭代并获得回复。

这是警报对话框的代码:

private void selectCountry() {

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.choose_country);
final String[] names = getResources().getStringArray(R.array.Countries);
builder.setItems(names, new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int item) {

        String CountryZipCode = "";

        for (int i = 0; i < names.length; i++) {
            String[] g = names[i].split(",");
            CountryZipCode = g[0];
        }

        countrycode.setText("+" + CountryZipCode);
    }
});

AlertDialog alert = builder.create();
alert.show();
}

这里是来自strings.xml的数据列表的片段:

<string-array name="Countries" >
    <item>93,Afghanistan</item>
    <item>355,Albania</item>
    <item>213,Algeria</item>
    <item>376,Andorra</item>
    <item>244,Angola</item>
</string-array>

提前多多感谢!

1 个答案:

答案 0 :(得分:2)

它总是最后一个吗?

因为如果我正确地阅读你的代码就是你在做什么..

你不应该这样说:

builder.setItems(names, new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int item) {

        String CountryZipCode = "";

        //for (int i = 0; i < names.length; i++) {
            String[] g = names[item].split(",");
            CountryZipCode = g[0];
        //}

        countrycode.setText("+" + CountryZipCode);
    }
});