Android
Spinnare
Sök…
Lägga till en spinner till din aktivitet
I /res/values/strings.xml:
<string-array name="spinner_options">
<item>Option 1</item>
<item>Option 2</item>
<item>Option 3</item>
</string-array>
I layout XML:
<Spinner
android:id="@+id/spinnerName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/spinner_options" />
I aktivitet:
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) {}
});
Grundläggande Spinner Exempel
Spinner Det är en typ av dropdown-ingång. Först i layout
<Spinner
android:id="@+id/spinner" <!-- id to refer this spinner from JAVA-->
android:layout_width="match_parent"
android:layout_height="wrap_content">
</Spinner>
Nu Andra värden i spinner Det finns huvudsakligen två sätt att fylla värden i spinner
.
- Skapa från XML själv en array.xml i katalogen värden under res . Skapa den här
array
<string-array name="defaultValue">
<item>--Select City Area--</item>
<item>--Select City Area--</item>
<item>--Select City Area--</item>
</string-array>
Lägg nu till denna rad i sppiner XML
android:entries="@array/defaultValue"
- Du kan också lägga till värden via JAVA
om du använder i activity
cityArea = (Spinner) findViewById (R.id.cityArea); annars om du använder i fragment
cityArea = (Spinner) findViewById(R.id.cityArea);
arrayList
nu en arrayList
med 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));
Detta kommer att se ut
Enligt enhetens Android-version kommer det att göra stil
Följande är några av standardtemaen
Om en app inte uttryckligen begär ett tema i sitt manifest kommer Android System att bestämma standardtemat baserat på appens targetSdkVersion för att behålla appens ursprungliga förväntningar:
Android SDK-version | Standardtema |
---|---|
Version <11 | @android: style / tema |
Version mellan 11 och 13 | @android: style / Theme.Holo |
14 och högre | @android: style / Theme.DeviceDefault |
Spinner
kan enkelt anpassas med hjälp av xml t.ex.
android:background="@drawable/spinner_background"
android:layout_margin="16dp"
android:padding="16dp"
Skapa en anpassad bakgrund i XML och använd den.
enkelt få positionen och andra detaljer för det valda objektet i spinnaren
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) {
}
});
Ändra textfärgen på det valda objektet i spinnaren
Detta kan göras på två sätt i XML
<item android:state_activated="true" android:color="@color/red"/>
Detta kommer att ändra den markerade objektfärgen i popup.
och från JAVA gör detta (i setOnItemSelectedListener (...))
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
((TextView) parent.getChildAt(0)).setTextColor(0x00000000);
// similarly change `background color` etc.
}