サーチ…


あなたの活動にスピナーを追加する

/res/values/strings.xml:

<string-array name="spinner_options">
    <item>Option 1</item>
    <item>Option 2</item>
    <item>Option 3</item>
</string-array>

レイアウトXMLでは:

<Spinner
    android:id="@+id/spinnerName"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:entries="@array/spinner_options" />

アクティビティ:

Spinner spinnerName = (Spinner) findViewById(R.id.spinnerName);
spinnerName.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
         String chosenOption = (String) parent.getItemAtPosition(position);
    }
    @Override
    public void onNothingSelected(AdapterView<?> parent) {}
});

基本的なスピナーの例

スピナードロップダウン入力の一種です。最初のレイアウト

  <Spinner
    android:id="@+id/spinner"     <!-- id to refer this spinner from JAVA-->
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    
</Spinner>

次にspinner値を入力するspinner値を入力する方法は主に2通りあります。

  1. XML自体から、 resの下のvaluesディレクトリにarray.xmlを作成します 。このarray作成array
  <string-array name="defaultValue">
    <item>--Select City Area--</item>
    <item>--Select City Area--</item>
    <item>--Select City Area--</item>
</string-array>

sppiner XMLにこの行を追加する

            android:entries="@array/defaultValue"
  1. JAVAを使用して値を追加することもできます

activity cityArea =(Spinner)で使用している場合はfindViewById(R.id.cityArea);そうでない場合は、 fragment使用している場合

cityArea = (Spinner) findViewById(R.id.cityArea);

今作成arrayListStrings

ArrayList<String> area = new ArrayList<>();
//add values in area arrayList
cityArea.setAdapter(new ArrayAdapter<String>(context
                            , android.R.layout.simple_list_item_1, area));

これは次のようになります

ここに画像の説明を入力 ここに画像の説明を入力

デバイスのAndroidのバージョンに応じてスタイルをレンダリングします

以下はデフォルトテーマのいくつかです

アプリがマニフェストでテーマを明示的に要求しない場合、AndroidシステムはアプリのtargetSdkVersionに基づいてデフォルトテーマを判断し、アプリの元の期待を維持します。

Android SDKのバージョンデフォルトのテーマ
バージョン<11 @android:スタイル/テーマ
バージョン11〜13 @android:style / Theme.Holo
14以上 @android:style / Theme.DeviceDefault

SpinnerはXMLの助けを借りて簡単にカスタマイズすることができます。

 android:background="@drawable/spinner_background"

 android:layout_margin="16dp"

 android:padding="16dp"

XMLでカスタムの背景を作成し、それを使用します。

スピナーで選択した項目の位置やその他の詳細を簡単に取得できます

cityArea.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            areaNo = position;
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

スピナーで選択した項目のテキストの色を変更する

これはXMLで2つの方法で行うことができます

<item android:state_activated="true" android:color="@color/red"/>

ポップアップで選択した項目の色が変わります。

JAVAからこれを行う(setOnItemSelectedListener(...))

 @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                 ((TextView) parent.getChildAt(0)).setTextColor(0x00000000);
// similarly change `background color` etc.
            }


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow