我想得到一个微调器的选择值。
首先,我在res / values / string
STRING-ARRAY
<string-array name="location">
<item name="AUH">ABU DHABI</item>
<item name="AAN">AL AIN</item>
<item name="DMM">DAMMAM</item>
</string-array>
布局中的微调器定义:
<Spinner
android:id="@+id/spnOrigin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:entries="@array/location"/>
现在我需要完成按钮点击主体,如果用户选择ABU DHABHI,他应该返回AUH。
GETSELECTITEM
返回ABU DHABI,而非此背后的价值。如果我尝试这样的话,这种方法可以让我获得NAME属性吗?
String[] _location =getResources().getStringArray(R.array.location);
按钮处理程序:
bttProcess.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
});
答案 0 :(得分:1)
我不相信name属性在items of a string array上有效。
我认为最好的办法是设置另一个数组来包含值。您可以((AdapterView)getViewById(R.id.spnOrigin)).getSelectedItemPosition()
然后从另一个数组中查找相关名称。
答案 1 :(得分:0)
尝试按照Android开发者网站中的exemple开始使用微调器
首先,您的活动必须实施AdapterView.OnItemSelectedListener
。这将提供一个回调方法,该方法将在从Spinner中选择一个项目时通知您的应用程序。
public class SpinnerActivity extends Activity implements OnItemSelectedListener
其次,您需要通过调用:
来注册接口实现spinner.setOnItemSelectedListener(this);
最后在该类的“onItemSelected”方法中,您可以获取所选项目:
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
String selected = parent.getItemAtPosition(pos).toString();
}
public void onNothingSelected(AdapterView parent) {
// Do nothing.
}
像这样使用你的字符串数组
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="locations">
<item>ABU DHABI</item>
<item>AL AIN</item>
<item>DAMMAM</item>
</string-array>
</resources>
答案 2 :(得分:0)
在Spinner需要通过KEY - VALUE PAIR List绑定的情况下,
微调器可以从中获取值
1.数据库
2.静态字符串数组
3.通过创建双资源字符串数组
第三点:
如果需要通过资源字符串数组绑定微调器,则需要创建两个数组。其中一个将持有KEY [NAMES Of Countries],Second Will包含VALUES [Short Code of Countries]。
比点击按钮,
bttProcess.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int position = spinner.getSelectedItemPosition();
Log.i("Code:","Selected Country Code: "+
getStringFromArray(R.array.locations_code, position ));
});
private String getStringFromArray(int id, int index) {
try {
String[] bases = getResources().getStringArray(id);
return bases[index];
}
catch (Exception e) {
return "";
}
}
资源看起来像,
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="locations">
<item>ABU DHABI</item>
<item>AL AIN</item>
<item>DAMMAM</item>
</string-array>
<string-array name="locations_code">
<item>ABU</item>
<item>AL</item>
<item>DAM</item>
</string-array>
</resources>