Dalam aplikasi Android saya, saya menggunakan spinner, dan saya telah memuat data dari database SQLite ke spinner, dan itu berfungsi dengan baik. Ini kode untuk itu.
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);
Sekarang saya ingin mengubah warna teks dan ukuran teks dari data pemintal. Saya telah menggunakan baris XML berikut ke tag pemintal saya pada file XML saya, tetapi tidak berfungsi.
android:textColor="@android:color/white"
android:textSize="11dp"
Bagaimana saya bisa mengubah warna teks dan ukuran teks dari pemintal saya?
Jawaban:
Buat file XML khusus untuk item pemintal Anda.
spinner_item.xml:
Berikan warna dan ukuran khusus Anda ke teks di file ini.
Sekarang gunakan file ini untuk menampilkan item pemintal Anda seperti:
Anda tidak perlu mengatur sumber drop-down. Hanya perlu
spinner_item.xml
menampilkan item Anda di pemintal.sumber
android:id="@+id/customSpinnerItemTextView"
. Jika Anda telah men-debug ini, Anda akan tahu ini.Sederhana dan segar ...:
sumber
Jika semua pemintal mungkin memiliki warna teks yang sama untuk item TextView mereka, pendekatan lain adalah menggunakan gaya khusus untuk item tarik-turun pemintal:
Dalam
res/values/styles.xml
:Dan tentukan warna khusus Anda dalam res / values / colors.xml:
sumber
android:
seperti ini<item name="spinnerDropDownItemStyle">@style/mySpinnerItemStyle</item>
Berikut ini tautan yang dapat membantu Anda mengubah warna Spinner :
Klik disini
Anda perlu membuat file tata letak Anda sendiri dengan definisi khusus untuk item spinner spinner_item.xml :
Jika Anda ingin menyesuaikan item daftar dropdown, Anda perlu membuat file layout baru. spinner_dropdown_item.xml :
Dan akhirnya perubahan lain dalam deklarasi pemintal:
Itu dia.
sumber
android:textSize="20sp"
dalam cuplikan kode pertama tidak berguna: ukuran teks dari kontrol didefinisikan dalamspinner_item.xml
Jika Anda bekerja dengan android.support.v7.widget.AppCompatSpinner di sini adalah solusi teruji menggunakan gaya:
Dan gayanya:
Satu-satunya downside adalah android: backgroundTint menetapkan warna untuk panah dropdown dan latar belakang dropdown.
sumber
style="@style/Widget.AppCompat.Spinner.Underlined"
tetapi Anda hanya memilikistyle name="Spinner"
...paddingStart
membutuhkan API 17,backgroundTint
membutuhkan API 21.Untuk mencegah lagging, Anda tidak hanya perlu mengatur properti teks di
onItemSelected
listener, tetapi juga dalam metode ActivityonCreate
(tapi agak rumit).Khususnya, Anda perlu memasukkan ini
onCreate
setelah mengatur adaptor:Dan kemudian taruh ini di
onItemSelected
:Ini adalah contoh lengkapnya:
Untuk detail lebih lanjut, lihat pertanyaan saya .
sumber
Jika Anda ingin warna teks berubah di item yang dipilih saja, maka ini bisa menjadi solusi yang mungkin. Itu bekerja untuk saya dan harus bekerja untuk Anda juga.
sumber
Untuk seseorang yang hanya membutuhkan
Style
jalanAppCompat
.Hasil
styles.xml
your_spinner_layout.xml
Plus
Dan jika Anda ingin mengatur secara
android:entries
pemrograman dengan gaya yang ditentukan.Coba ini.
Seperti dalam kode, menggunakan sama
Context
dengan halSpinner
yang paling penting.sumber
Untuk mengubah warna teks pemintal:
sumber
Daripada membuat tata letak khusus untuk mendapatkan ukuran kecil dan jika Anda ingin menggunakan LAYOUT ukuran kecil internal Android untuk pemintal, Anda harus menggunakan:
"android.R.layout.simple_gallery_item" bukan "android.R.layout.simple_spinner_item".
Ini dapat mengurangi ukuran tata letak pemintal. Ini hanya trik sederhana.
Jika Anda ingin mengurangi ukuran daftar drop-down gunakan ini:
sumber
Cara termudah untuk menggunakan kembali / mengubah sumber daya android.R.layout cukup dengan definisinya. Di Android Studio, lakukan Ctrl+ Bdi android.R.layout.simple_spinner_item.xml.
Ini akan membawa Anda ke file sumber. Cukup salin file sumber daya dan tambahkan tata letak baru di folder Package.R.layout Anda dan ubah textColor of textview sesuka Anda dan kemudian panggil saja dalam adaptor seperti ini:
sumber
Bagi yang ingin berganti
DrowDownIcon
warna bisa Anda gunakan seperti inisumber
<item name="android:colorControlNormal" tools:targetApi="lollipop">@color/light_gray</item>
AppTheme
Drawable spinnerDrawable = spinner.getBackground().getConstantState().newDrawable(); spinnerDrawable.setColorFilter(getResources().getColor(R.color.md_white_1000), PorterDuff.Mode.SRC_ATOP); if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { spinner.setBackground(spinnerDrawable); }else{ spinner.setBackgroundDrawable(spinnerDrawable); }
Dapat mengubah warna teks dengan mengganti metode getView sebagai berikut:
sumber
Sederhana: Bekerja untuk saya
sumber
gunakan saja ini:
sumber
Variasi lain dari solusi Ashraf adalah memastikan Anda mempertimbangkan ukuran layar akun. Anda harus memasukkan pemintal di onCreate dan mengatur pendengar setelah Anda mengatur adaptor:
Kemudian Anda dapat mulai mengubah ukuran teks tampilan yang ditampilkan sebelum pemintal diklik:
Yang perlu Anda lakukan adalah membuat folder khusus tata letak seperti ini:
lalu tambahkan file xml bernama "bool.xml" ke masing-masing folder tersebut:
sumber
Pertama-tama kita harus membuat
xml
file sumber daya sederhanatextview
seperti di bawah ini:dan simpan itu. setelah ditetapkan pada daftar adaptor Anda.
sumber
Anda dapat memiliki jenis adaptor ini untuk pemintal, sepenuhnya disesuaikan:
sedangkan R.layout.spinner_text adalah:
sumber
Jika Anda ingin metode sederhana, untuk menambahkan item ke dropdown, Anda biasanya menambahkannya ke strings.xml. Berikut adalah contoh tentang cara menambahkan warna dengan menggunakan file strings.xml:
RANGE AGE SELECT
sumber
Saya telah melakukan ini sebagai berikut. Saya telah menggunakan metode getDropDownView () dan getView ().
Gunakan
getDropDownView()
untuk Spinner yang dibuka.Dan Gunakan
getView()
untuk Spinner tertutup.sumber
Coba metode ini. Ini bekerja untuk saya.
sumber
tambahkan saja gaya baru seperti ini:
dan gunakan:
sumber
itu saja semua menikmati coding Anda ...
sumber