2012-06-03 14 views
8

私は3つの項目を持つスピナーを持っています。私はそれをフィードするためにXML文字列配列リソースを使用します。アクティビティを開くと、スピンナーは通常、配列リストにある最初のアイテムを表示します。私はそれを変更し、アイテムが選択される前にスピナーでテキスト "Select one"を表示したいと思います。項目を選択する前にスピナーのテキストを設定する

どうすればいいですか?

+0

2)

EDIT、あなたのリソースごonItemSelectedリスナーで

<string-array name="listarray"> <item>Select One</item> <item>Item One</item> <item>Item Two</item> <item>Item Three</item> </string-array> 

を最初の行としてそれを挿入するためのカスタム・アダプターを作成します。可能性のある複製[Android Spinnerの作り方h初期のテキスト "Select One"](0120-18751)[編集] – blahdiblah

答えて

9

あなたはその2つの方法のいずれかを行うことができます。

1)xmlの最初の項目として「Select One」を追加し、それを無視するようにリスナーをコード化します。

spinnername.setOnItemSelectedListener(new OnItemSelectedListener() { 
@Override 
    public void onNothingSelected(AdapterView<?> parent) { 
    } 
    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
     if (pos == 0) { 
     }else { 
      // Your code to process the selection 
     } 
    } 
}); 
+0

文字列リソースから挿入する方法はありますか? – JohnD

+0

ええ、それを配列リソースの最初のエントリとして追加するだけです。私は答えを編集して例を挙げました。 – Barak

+0

これで問題は解決しましたか? – Barak

1

スピナーのデフォルトテキストを設定するには、スピナーにandroid:[email protected]/SelectOneを使用する必要があります。ここで、SelectOneはstring.xmlに定義されています。

例:

<Spinner android:id="@+id/spinnerTest" 
android:layout_marginLeft="50px" 
android:layout_width="fill_parent"     
android:drawSelectorOnTop="true" 
android:layout_marginTop="5dip" 
android:prompt="@string/SelectOne" 
android:layout_marginRight="30px" 
android:layout_height="35px" 
/> 
+0

OPが望むものではありません。彼はそれをヘッダーとしてではなく、スピナーでそれを望んでいます。 – Barak

+0

はい、そうです。 – JohnD

+1

この記事をチェックすると、あなたが望むことをやり遂げることができます。 http://stackoverflow.com/questions/867518/how-to-make-an-android-spinner-with-initial-text-select-one – 113408

関連する問題