0


スピナーの選択値を取得したい。
まず、STRING-ARRAYres/values/stringに を作成しました

<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) {    

});
4

3 に答える 3

1

name 属性が文字列配列の項目に対して有効であるとは思えません。

あなたの最善の策は、別の配列を設定して値を入れることだと思います。((AdapterView)getViewById(R.id.spnOrigin)).getSelectedItemPosition()次に、その他の配列から関連する名前を検索できます。

于 2012-07-01T03:49:59.467 に答える
0

スピナーの使用を開始するには、Android 開発者の Web サイトのに従ってください。

まず、アクティビティを実装する必要がありますAdapterView.OnItemSelectedListener。これにより、アイテムがスピナーから選択されたときにアプリケーションに通知するコールバック メソッドが提供されます。

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>
于 2012-07-01T03:50:22.360 に答える
0

スピナーが KEY - VALUE PAIR リストによってバインドする必要があるこのシナリオでは、スピナーは
1. データベース
2. 静的文字列配列から値を取得できます。
3. Bi-Resource 文字列配列を作成する。

FOR 3rd Point:
リソース文字列配列によってスピナーをバインドする必要がある場合は、2 つの配列を作成する必要があります。1 つはキー [国の名前] を保持し、2 番目のウィルには VALUES [国の短いコード] が含まれます。

クリックボタンよりも、

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 "";
    }
}

RESOURCES は次のようになります。

<?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>
于 2012-09-04T11:13:35.770 に答える