gpt4 book ai didi

android - 显示国家及其调用代码,但使用 Android XML 返回其缩写代码

转载 作者:数据小太阳 更新时间:2023-10-29 02:31:01 24 4
gpt4 key购买 nike

我正在尝试从 Android XML 开发一个注册屏幕。与每个注册表一样,我需要显示国家列表。我可以使用 strings.xml 文件中的字符串数组来做到这一点。

问题的主要部分是,当用户选择一个国家时,其正下方的电话号码字段最初应填写其各自的国家代码,这可能是可编辑的,也可能是不可编辑的。在这里,我的问题是如何在选择国家时获取国家代码。我需要使用数据库还是可以使用 xml 本身来实现?

除此之外,当用户提交注册表格时,我必须发送国家的缩写代码,而不是完整的国家名称。现在,这又需要数据库还是 xml?

我的应用程序直到现在还没有使用数据库,为此目的使用数据库并不是很好。此外,几乎所有使用注册的应用程序都需要完成此操作,但我找不到任何有关如何在 Android 中执行此操作的资源。

另外,我想告诉你,我的最低 sdk 是版本 7。

请帮忙。

最佳答案

我终于可以不用数据库了。我正在写下这些步骤,以便它可以帮助任何其他需要完成同样事情的人。

首先,我下载了可用的 CSV:https://github.com/mledoze/countries/blob/master/countries.csv

我删除了所有其他字段,除了我需要的字段。它给我留下了 3 个字段:名称、缩写和调用代码。

接下来,我从以下地址下载了 CSVReader:http://code.google.com/p/secrets-for-android/source/browse/trunk/src/au/com/bytecode/opencsv/CSVReader.java

从 CSV 中获取了 How to parse the CSV file in android application? 中提到的项目由“Kopfgeldjaeger”作为:

String next[] = {};
List<String[]> list = new ArrayList<String[]>();

try {
CSVReader reader = new CSVReader(new InputStreamReader(getAssets().open("countries.csv")));
for(;;) {
next = reader.readNext();
if(next != null) {
list.add(next);
} else {
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}

接下来,我为每个值添加了一个 ArrayList,例如:

ArrayList<String> countryNames = new ArrayList<String>();
ArrayList<String> countryAbber = new ArrayList<String>();
ArrayList<String> countryCodes = new ArrayList<String>();

for(int i=0; i < list.size(); i++)
{
countryNames.add(list.get(i)[0]); // gets name
countryAbber.add(list.get(i)[1]); // gets abbreviation
countryCodes.add(list.get(i)[2]); // gets calling code
}

然后将其添加到 XML 布局中的微调器中:

ArrayAdapter<String> countryAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, countryNames);
spinner.setAdapter(countryAdapter);

// adding event to display codes when country is selected


spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int pos, long arg3) {
// display the corresponding country code
TextView tvCountryCode = (TextView) findViewById(R.id.country_code);
tvCountryCode.setText("+"+list.get(pos)[2]);
countryPosition = pos;
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub

}
});

这样,当从下拉列表中选择一个国家/地区时,我能够在 xml 文件中显示国家/地区代码。

记得添加 setOnItemSelectedListener() 来实现它。

我希望这对以后的人有所帮助。

关于android - 显示国家及其调用代码,但使用 Android XML 返回其缩写代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16161732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com