Android
スピナー
サーチ…
あなたの活動にスピナーを追加する
/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通りあります。
- 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"
- JAVAを使用して値を追加することもできます
activity
cityArea =(Spinner)で使用している場合はfindViewById(R.id.cityArea);そうでない場合は、 fragment
使用している場合
cityArea = (Spinner) findViewById(R.id.cityArea);
今作成arrayList
のStrings
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