Savā Android lietojumprogrammā es izmantoju spinneri, un es esmu ielādējis datus no SQLite datubāzes spinnerī, un tas darbojas pareizi. Šeit ir tam paredzētais kods.
Spinner spinner = (Spinner) this.findViewById(R.id.spinner1);
List<String> list = new ArrayList<String>();
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String> (this,android.R.layout.simple_spinner_item, list);
cursor.moveToFirst();
list.add("All Lists");
if (cursor.getCount() > 0) {
for (int i = 0; i < cursor.getCount(); i++) {
keyList[i] = cursor.getString(cursor.getColumnIndex(AndroidOpenDbHelper.KEYWORD));
list.add(keyList[i]);
cursor.moveToNext();
}
}
Database.close();
cursor.close();
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(dataAdapter);
Tagad es gribu mainīt teksta krāsu un teksta lielumu spinnera datiem. XML failā es izmantoju šādas XML rindas savam spinner tagam, bet tas nedarbojas.
android:textColor="@android:color/white"
android:textSize="11dp"
Kā es varu mainīt teksta krāsu un teksta lielumu savam griezējam?
Izveidojiet pielāgotu XML failu savam rotācijas elementam.
spinner_item.xml:
Šajā failā piešķiriet pielāgotu krāsu un lielumu tekstam.
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:gravity="left"
android:textColor="#FF0000"
android:padding="5dip"
/>
Tagad izmantojiet šo failu, lai parādītu savus rotatora elementus, piemēram:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spinner_item,list);
Jums nav nepieciešams iestatīt nolaižamo resursu. Tas izmantos tikai spinner_item.xml
, lai parādītu jūsu priekšmetus spinnerī.
Vienkārši un kraukšķīgi....:
private OnItemSelectedListener OnCatSpinnerCL = new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
((TextView) parent.getChildAt(0)).setTextColor(Color.BLUE);
((TextView) parent.getChildAt(0)).setTextSize(5);
}
public void onNothingSelected(AdapterView<?> parent) {
}
};
Vēl viens Ašrafa risinājuma variants ir pārliecināties, ka ņemat vērā ekrāna izmērus. Jums būs nepieciešams iegūt spinner onCreate un iestatīt klausītāju pēc adaptera iestatīšanas:
//set your adapter with default or custom spinner cell, then://
serverSpinner.setOnItemSelectedListener(spinnerSelector);
serverSpinner.setSelection(defaultServer);
Tad jūs varat sākt mainīt teksta lielumu skatā, kas tiek parādīts pirms spinnera noklikšķināšanas:
private AdapterView.OnItemSelectedListener spinnerSelector = new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
boolean tabletSize = getResources().getBoolean(R.bool.isTablet);
boolean largeTablet = getResources().getBoolean(R.bool.isLargeTablet);
if (tabletSize) { ((TextView)parent.getChildAt(0)).setTextSize(16); }
else if (largeTablet) { ((TextView)parent.getChildAt(0)).setTextSize(18); }
else { ((TextView)parent.getChildAt(0)).setTextSize(12); }
}
public void onNothingSelected(AdapterView<?> parent) {
}
};
Viss, kas jums jādara, ir jāizveido izkārtojumam specifiskas mapes, piemēram, šādi:
values-sw360dp
values-sw600dp
values-sw800dp
tad katrā no šīm mapēm pievienojiet xml failu ar nosaukumu "bool.xml":
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="isTablet">false</bool>
<bool name="isLargeTablet">false</bool>
</resources>