2013-04-24 20 views
15

Bu cevabı aradım ancak başarısız oldu.Android'de bir çevirenin liste arka plan rengini değiştirme

Dinamik olarak yeni bir çevirici oluşturuyorum, liste arka plan rengimi nasıl değiştirebilirim? Ben olmak istiyorum

two muppets :

i beyaza spinner arka plan niteliğini değiştiriyorum

two muppets i alıyorum bu istenmeyen durum:

akım arka plan rengi bazı koyu gri aktivitede şeffaf ve sadece spikeri açtığımda (üzerine bas), arkaplanın beyaz olmasını istiyorum. Birlikte adaptörü yaratıyorum

:

mAdapter = new ArrayAdapter<String>(getApplicationContext(), 
            R.layout.spinner, R.id.Language, lang); 
    LinearLayout layoutHolder = 
         (LinearLayout)findViewById(R.id.RegisterFormLayout); 
    Spinner spinner = new Spinner(getApplicationContext()); 
    LayoutParams layParams= new 
       Spinner.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,  
             ViewGroup.LayoutParams.WRAP_CONTENT); 
    spinner.setLayoutParams(layParams); 
    spinner.setAdapter(mAdapter); 
    spinner.setOnItemSelectedListener(new myOnItemSelectedListener()); 
    if (lang != null) 
     spinner.setSelection(lang.intValue()); 
    spinnerList.add(spinner); 
    layoutHolder.addView(spinner); 

benim spinner.xml düzeni olduğunu: Burada

Birlikte spinner yaratıyorum kodudur

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" 
android:id="@+id/SpinnerLayout"> 

<TextView 
    android:id="@+id/Language" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textColor="#ffffff" 
    android:background="#00ffffff" 
    android:padding="5dp" /> 
</LinearLayout> 

herhangi bir öneri? LinearLayout benim spinner.xml

kullanımı bu

+0

Liste görünüm öğelerinizin her biri için mizanpaj tanımlarınız var mı? –

+1

hayır ... sadece ArrayAdapter (mAdapter) ekli bir liste var. –

+1

@NoamMizrachi Cevabımı kontrol edin http://stackoverflow.com/questions/15299194/how-to-change-the-text-background-color- bir open-spinner-on-android – Pragnani

cevap

11

değişen //

<Spinner 
    android:id="@+id/spinner1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:popupBackground="@android:color/holo_green_dark" /> 

altına gibi bunu çözüldü!

Bunun çözümü dinamik spinner oluşturarak bu kodu eklemektir

:

spinner.setPopupBackgroundResource(R.drawable.spinner); 

ve Drawable klasör altında spinner.xml oluşturmak için:

<?xml version="1.0" encoding="utf-8"?> 
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
    <solid android:color="#ffffff" /> 
</shape> 

Bu çözüm 16 API düzeyi gerektiren ve yukarıda.

sonuç:

two muppets

+1

Ya u r rt. spinner.setPopupBackgroundResource (R.drawable.spinner); Minimum API seviyesi 16'dır. Tüm seviyelerde çalışmak için bunu XML android'den ayarlayın: popupBackground = "@ android: color/red – Praveen

1

: android:background="#ffffff"

+1

Sonucumu, benim ikinci soru resmim gibi alıyorum. Aktivitede şeffaf olmasını istiyorum ve sadece bastığımda arka plan beyaz olacak. –

21

Bu yanıttan emin değilim, kabul etmek veya göz ardı edebilirsiniz.

Bu gereksinimin, tema değişiklikleri yoluyla gerçekleştirilemeyeceğini düşünüyorum. Spinner yapıcısı popupBackground attr üzerinde değer atar çünkü yalnızca xml düzeninde yazdıysanız, aksi takdirde varsayılan tema değerini kullanır. justtry açılan bir geçmiş

+2

Çevresinde siyah bir kenarlık ekler – StarWind0

2

sorunu çözmek için şunu deneyin.

android:popupBackground="#00826b" 
İlgili konular