检索微调器的绑定值

时间:2012-07-01 03:27:19

标签: android spinner selected


我想得到一个微调器的选择值。
首先,我在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) {    

});

3 个答案:

答案 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>