Dönen metin boyutunu ve metin rengini nasıl değiştirebilirim?


432

Android uygulamamda, spinner kullanıyorum ve SQLite veritabanından spinner'a veri yükledim ve düzgün çalışıyor. İşte bunun kodu.

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);

Şimdi dönücü verilerinin metin rengini ve metin boyutunu değiştirmek istiyorum. XML dosyamdaki spinner etiketine aşağıdaki XML satırlarını kullandım, ancak çalışmıyor.

android:textColor="@android:color/white"
android:textSize="11dp"

Değer değiştiricimin metin rengini ve metin boyutunu nasıl değiştirebilirim?


aşağıdaki siteleri kontrol edin [StackoverFlow] [1] [stackoverflow] [2] [stackoverflow] [3] Bunun yinelenen soru olduğunu düşünüyorum [1]: stackoverflow.com/questions/4880413/… [2]: stackoverflow.com/questions / 4989817 /… [3]: stackoverflow.com/questions/5836254/…
user1203673

bu
yazıyı

1
TextSize için doğru SP kullanmaktır ... android: textSize = "11sp"
Diego Venâncio

Yanıtlar:


780

Dönücü öğeniz için özel bir XML dosyası oluşturun.

spinner_item.xml:

Özelleştirilmiş renk ve bedeninizi bu dosyadaki metne verin.

<?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"
    />

Şimdi bu dosyayı kullanarak dönücü öğelerinizi gösterin:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spinner_item,list);

Açılır kaynağı ayarlamanız gerekmez. Bu alacak spinner_item.xmlbükücüsünde öğeleri göstermek için sadece.


2
@Hiral metin, yalnızca seçili olan öğe için beyaz olacaktır.
tesla

8
@SANTHOSH iyi TextView için kimlik eklemek zorunda, sadece oraya ekleyin android:id="@+id/customSpinnerItemTextView". Eğer hata ayıklamış olsaydınız bunu bilirdiniz.
13:16

3
@ vilpe89 Bununla ne demek istediğinizi göstermek için yukarıdaki kodunuzu değiştirebilir misiniz? bu android: id nereye gidiyor? kesinlikle spinner etiketinde değil, çünkü kendi kimliği var. ancak yukarıda oluşturduğunuz metin görünümü etiketine eklemek mantıklı değildir. Bu etiketi doğrudan XML'den kullanmak istediğimi nasıl anlarım? Ayrıca, Eclipse XML oluştururken, ben sadece TextView içeren bir XML dosyası oluşturmak için herhangi bir seçenek görmüyorum, bu nasıl çalışır ???
Michael

29
Sadece küçük bir not. Metin boyutu dp / dip yerine sp kullanıyor olmalıdır
ymerdrengene

18
Bu sadece stil kullanılarak yapılamaz mı? Ben android şeyler stil bu kadar zor ne kadar şaşırdım .. Bu sinir bozucu .. Ben css gibi bir stil sistemi olmasını diledi
evet

183

Basit ve keskin ...:

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) {

    }
};

19
Bu benim için en iyi çözüm, çünkü döndürücüdeki metnin rengini değiştirmem gerekiyordu, ancak görünen listede değil. Teşekkür ederim.
peter.bartos

7
Benim için, öğe rengi yanıp sönüyor, orijinal renkten seçtiğim renge gidiyor
Felipe Conde

@FelipeConde Hiç bir cevap buldunuz mu? Aynı sorum var. Benim sorum burada: stackoverflow.com/questions/33908564/…
Rock Lee

@FelipieConde Sizin için, önce yükselme rengini alır, daha sonra manuel olarak diğer renge dönüşür, Bu yüzden çok yorgun görünür. İlk başta <item name = "colorAccent"> @ color / color_primary </item> Sürüyor Sonra programlı olarak manuel olarak değiştirdiniz, Yani göz kırpma hissediyorsunuz
Eşref

2
Bu benim için çalıştı ama yukarıdaki kod üzerinde boş bir işaretçi alır gibi ben bir parça app dönüş zaman çöküyor
Akshay Shah

145

Tüm döndürücüler TextView öğeleri için aynı metin rengine sahipse, başka bir yaklaşım, döndürücü açılır öğeleri için özel bir stil kullanmaktır:

İçinde res/values/styles.xml:

<resources>
    <style name="AppBaseTheme" parent="android:Theme.Light">
    </style>

    <style name="AppTheme" parent="AppBaseTheme">
        <item name="android:spinnerDropDownItemStyle">@style/mySpinnerItemStyle</item>
    </style>

    <style name="mySpinnerItemStyle" parent="@android:style/Widget.Holo.DropDownItem.Spinner">
        <item name="android:textColor">@color/my_spinner_text_color</item>
    </style>
</resources>

Ve özel renginizi res / value / colors.xml içinde tanımlayın:

<color name="my_spinner_text_color">#808080</color>

2
Ve bu çözümü Appcompt temasına nasıl uygulayabilirim? "@ Style / Widget.AppCompat.DropDownItem.Spinner" ana temasını geçersiz kılarak dtried ve işe yaramadı
GyRo

11
Ayrıca şunu da ekleyeceğim: <item name = "android: spinnerItemStyle"> @ style / mySpinnerItemStyle </item> Bu, daraltılmış metnin aynı renge sahip olmasını sağlar - bu istenen davranış olması durumunda.
sonsuz döngü

4
benim için çalışmıyor, stil tamamen göz ardı edildi
diogo.abdalla

1
@Whypee, cevabınızı lütfen benim için mükemmel çalışan sonsuz döngü önerilerine göre düzenleyin
Chintan Desai

4
android:<item name="spinnerDropDownItemStyle">@style/mySpinnerItemStyle</item>
AppCompat

73

İşte Spinner'ın rengini değiştirmenize yardımcı olabilecek bir bağlantı :

Buraya Tıkla

<Spinner
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/spinner"
    android:textSize="20sp"
    android:entries="@array/planets"/>

Spinner_item.xml spinner öğesi için özel bir tanımla kendi düzen dosyanızı oluşturmanız gerekir :

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="20sp"
    android:textColor="#ff0000" />

Açılır liste öğelerini özelleştirmek istiyorsanız, yeni bir düzen dosyası oluşturmanız gerekir. spinner_dropdown_item.xml :

<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="?android:attr/spinnerDropDownItemStyle"
    android:maxLines="1"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:ellipsize="marquee"
    android:textColor="#aa66cc"/>

Ve son olarak, eğiricinin beyanında başka bir değişiklik:

ArrayAdapter adapter = ArrayAdapter.createFromResource(this,
R.array.planets_array, R.layout.spinner_item);

adapter.setDropDownViewResource(R.layout.spinner_dropdown_item);
spinner.setAdapter(adapter);

Bu kadar.


2
Bu, yeni kullanıcıların yayınlarını incelemekten gelen otomatik bir yanıttı. Cevabı düzenlediğiniz için mutluyuz! :)
Marko

1
Görünüşe göre, android:textSize="20sp"ilk kod pasajında ​​işe yaramaz: kontrolün spinner_item.xml
metin boyutu

23

Android.support.v7.widget.AppCompatSpinner ile çalışıyorsanız, stilleri kullanarak test edilen en basit çözüm aşağıdadır:

 <android.support.v7.widget.AppCompatSpinner
                    android:id="@+id/spefcialFx"
                    style="@style/Widget.AppCompat.Spinner.Underlined"
                    android:layout_width="200dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="4dp"
                    android:theme="@style/Spinner"
                    android:entries="@array/special_fx_arrays"
                    android:textSize="@dimen/text_size_normal"></android.support.v7.widget.AppCompatSpinner>

Ve stil:

<style name="Spinner" parent="Widget.AppCompat.Light.DropDownItem.Spinner">
        <item name="android:paddingStart">0dp</item>
        <item name="android:paddingEnd">0dp</item>
        <item name="android:textColor">@color/white</item>
        <item name="android:backgroundTint">@color/red</item>
        <item name="android:textSize">14sp</item>
    </style>

Tek dezavantajı android: backgroundTint hem açılır ok hem de açılır arka plan için renk ayarlar.


3
kullanıyorsun style="@style/Widget.AppCompat.Spinner.Underlined"ama sadece style name="Spinner"...
user25

1
paddingStartAPI 17 backgroundTintgerektirir, API 21 gerektirir
CoolMind

18

Gecikmeyi önlemek için, yalnızca metin özelliklerini onItemSelected dinleyicideki değil, aynı zamanda Aktivitenin onCreateyönteminde de (ancak biraz zor).

Özellikle, onCreateadaptörü ayarladıktan sonra bunu koymanız gerekir :

spinner.setSelection(0, true);
View v = spinner.getSelectedView();
((TextView)v).setTextColor(backgroundColor);

Ve sonra şunu koy onItemSelected:

((TextView) view).setTextColor(backgroundColor);

İşte tam bir örnek:

@Override  
protected void onCreate(Bundle savedInstanceState)
{  
    Spinner spinner = (Spinner) findViewById(R.id.spinner); 

    //Set the choices on the spinner by setting the adapter.  
    spinner.setAdapter(new SpinnerAdapter(toolbar.getContext(), new String[]{"Overview", "Story", "Specifications", "Poll", "Video"}, accentColor, backgroundColor));

    //Set the text color of the Spinner's selected view (not a drop down list view) 
    spinner.setSelection(0, true);
    View v = spinner.getSelectedView();
    ((TextView)v).setTextColor(backgroundColor);

    //Set the listener for when each option is clicked.  
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
    {  

        @Override  
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
        {  
           //Change the selected item's text color  
           ((TextView) view).setTextColor(backgroundColor);
        }  

        @Override  
        public void onNothingSelected(AdapterView<?> parent)
        {  
        }  
    });  

}  

Daha fazla ayrıntı için soruma bakın .


15

Metin renginin yalnızca seçilen öğede değişmesini istiyorsanız, bu olası bir çözüm olabilir. Benim için çalıştı ve sizin için de çalışmalı.

spinner.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                ((TextView) spinner.getSelectedView()).setTextColor(Color.WHITE);
            }
        });

6

Tek Styleyolu olan biri için AppCompat.

Sonuç
resim açıklamasını buraya girin resim açıklamasını buraya girin

styles.xml

<resources>
    ... 
    <style name="Spinner" parent="Widget.AppCompat.Light.DropDownItem.Spinner">
        <item name="android:paddingStart">0dp</item>
        <item name="android:paddingEnd">0dp</item>
        <item name="android:textColor">@color/material_grey_700</item>
        <item name="android:textSize">12sp</item>
    </style>
</resources>

your_spinner_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
    ...

    <android.support.v7.widget.AppCompatSpinner
        android:id="@+id/content_spinner"
        style="@style/Widget.AppCompat.Spinner.Underlined"
        android:layout_width="140dp"
        android:layout_height="wrap_content"
        android:entries="@array/shipping_tracking_carrier_names"
        android:spinnerMode="dropdown"
        android:theme="@style/Spinner" />

    <EditText
        android:id="@+id/content_input"
        android:layout_width="140dp"
        android:layout_height="wrap_content"
        android:inputType="text"
        android:maxLines="1"
        android:paddingEnd="8dp"
        android:paddingStart="8dp"
        android:textColor="@color/material_grey_700"
        android:textSize="12sp" />

    ...
</LinearLayout>    

Artı
Ve android:entriesprogramlı olarak tanımlanan stille ayarlamak istiyorsanız .
Bunu dene.

AppCompatSpinner spinner = findViewById(R.id.content_spinner);
CharSequence[] entries = getResources().getTextArray(R.array.shipping_tracking_carrier_names);
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<>(spinner.getContext(), android.R.layout.simple_spinner_item, entries);
adapter.setDropDownViewResource(android.support.v7.appcompat.R.layout.support_simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

Kodda olduğu gibi, aynı Contextile kullanmak Spinneren önemli şeydir.

spinner.getContext()

5

Dönen metnin rengini değiştirmek için:

 public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            ((TextView) parent.getChildAt(0)).setTextColor(Color.WHITE);}

Bu en basit ve benim için çalıştı, teşekkürler!
Mousa Alfhaily

ben de bu çözümü seviyorum. basit ve iyi çalışıyor.
korchix

4

Küçük bir boyut elde etmek için özel bir düzen yapmak yerine ve eğirme makinesi için Android'in dahili küçük boyutlu LAYOUT'u kullanmak istiyorsanız şunları kullanmalısınız:

"android.R.layout.simple_spinner_item" yerine "android.R.layout.simple_gallery_item".

ArrayAdapter<CharSequence> madaptor = ArrayAdapter
            .createFromResource(rootView.getContext(),
                                R.array.String_visitor,
                                android.R.layout.simple_gallery_item);

Spinner yerleşiminin boyutunu azaltabilir. Bu sadece basit bir numara.

Bir açılır listenin boyutunu küçültmek istiyorsanız bunu kullanın:

madaptor.setDropDownViewResource(android.R.layout.simple_gallery_item);

4

Android.R.layout kaynaklarını yeniden kullanmanın / değiştirmenin en kolay yolu tanımına gitmektir. Android Studio'da Ctrl+B android.R.layout.simple_spinner_item.xml üzerinde .

Sizi kaynak dosyasına götürecektir. Sadece kaynak dosyayı kopyalayın ve Package.R.layout klasörünüze yeni bir düzen ekleyin ve textview metninin rengini istediğiniz gibi değiştirin ve ardından aşağıdaki gibi bir adaptörde çağırın:

ArrayAdapter<String> adapter = new ArrayAdapter<String(Context,R.layout.spinner_item, spinnerlist);

4

DrowDownIconRengi değiştirmek isteyenler için şöyle kullanabilirsiniz

spinner.getBackground().setColorFilter(Color.parseColor("#ffffff"), PorterDuff.Mode.SRC_ATOP);

deneyebilirsiniz<item name="android:colorControlNormal" tools:targetApi="lollipop">@color/light_gray</item>
AMAN SINGH

Bu çizgiyi tarzınıza koyunAppTheme
AMAN SINGH

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); }
İşe yarayan

4

GetView yöntemini şu şekilde geçersiz kılarak metin rengini değiştirebilirsiniz:

 new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_dropdown_item, list()){
                @Override
                public View getView(int position, View convertView, @NonNull ViewGroup parent) {
                    View view = super.getView(position, convertView, parent);
                    //change the color to which ever you want                    
                    ((CheckedTextView) view).setTextColor(Color.RED);
                    //change the size to which ever you want                    
                    ((CheckedTextView) view).setTextSize(5);
                    //for using sp values use setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
                    return view;
                }
    }


2
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1"
    style="?android:attr/spinnerItemStyle"
    android:singleLine="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textColor="#fff"
    android:ellipsize="marquee"
    android:textAlignment="inherit"/>

sadece şunu kullanın:

ArrayAdapter<String> adapter_category = new ArrayAdapter<String>(this,
    R.layout.spinner_list_item, categories);
adapter_category
    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

1

Ashraf'ın çözümünün başka bir varyasyonu, ekran boyutlarını dikkate aldığınızdan emin olmak olacaktır. Bağdaştırıcıyı ayarladıktan sonra çeviriciyi onCreate'a almanız ve dinleyiciyi ayarlamanız gerekir:

//set your adapter with default or custom spinner cell, then://
serverSpinner.setOnItemSelectedListener(spinnerSelector);
serverSpinner.setSelection(defaultServer);

Ardından, döndürücü tıklanmadan önce gösterilen görünümün metin boyutunu değiştirmeye başlayabilirsiniz:

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) {

    }
};

Tek yapmanız gereken şemaya özel klasörler oluşturmaktır:

değerler sw360dp

değerler sw600dp

değerler sw800dp

ardından bu klasörlerin her birine "bool.xml" adlı bir xml dosyası ekleyin:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool name="isTablet">false</bool>
    <bool name="isLargeTablet">false</bool>
</resources>

1

Öncelikle aşağıdaki gibi basit bir xmlkaynak dosyası oluşturmalıyız textview:

<?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"
    />   

ve kaydedin. adaptör listenizde ayarladıktan sonra.


1

tamamen özelleştirilmiş spinner için bu tür bir adaptör olabilir:

 ArrayAdapter<String> genderAdapter = new ArrayAdapter<String>(getActivity(), R.layout.spinner_text, genderList) {

        public View getView(int position, View convertView, ViewGroup parent) {
            View v = super.getView(position, convertView, parent);
            ((TextView) v).setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
            ((TextView) v).setTextColor(Color.parseColor("#676767"));
            ((TextView) v).setTypeface(vrFont);
            return v;
        }

        public View getDropDownView(int position, View convertView, ViewGroup parent) {
            View v = super.getDropDownView(position, convertView, parent);
            ((TextView) v).setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
            ((TextView) v).setTypeface(vrFont);
            ((TextView) v).setTextColor(Color.parseColor("#676767"));

            if (position == 0) {
                ((TextView) v).setTextColor(Color.parseColor("#979797"));
            }

            return v;
        }

R.layout.spinner_text ise:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text1"
style="?android:attr/spinnerItemStyle"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:gravity="center_vertical|left"
android:ellipsize="marquee"
android:maxLines="1"
android:textColor="@color/whiteThree" />

1

Basit bir yöntem istiyorsanız, bir açılır menüye öğe eklemek için genellikle strings.xml dosyasına eklersiniz. Aşağıda strings.xml dosyasını kullanarak renk eklemeyle ilgili bir örnek verilmiştir:

YAŞ ARALIĞI SEÇ

<string-array name="age_array">

   <item> 0-6 </item>                               //No custom colour

  <item><font fgcolor='#FF4CD964'> 12+ </font></item> //With custom colour

</string-array>

sevimli hüner ... bir off spinner için yararlı ve hızlı, renk xml değil ham renk değeri dize olması gerekir
me_

0

Bunu aşağıdaki gibi yaptım. GetDropDownView () ve getView () yöntemlerini kullanıyorum.

getDropDownView()Açılmış Spinner için kullanın .

@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
  View view = convertView;
  if (view == null) {
    LayoutInflater vi = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    view = vi.inflate(R.layout.context_row_icon, null);
  }
  TextView mTitle = (TextView) view.findViewById(R.id.context_label);
  ImageView flag = (ImageView) view.findViewById(R.id.context_icon);                

  mTitle.setText(values[position].getLabel(activity));

  if (!((LabelItem) getItem(position)).isEnabled()) {
    mTitle.setTextColor(activity.getResources().getColor(R.color.context_item_disabled));
  } else {
    mTitle.setTextColor(activity.getResources().getColor(R.color.context_item));
  }
  return view;
}

Ve getView()kapalı Spinner için kullanın .

@Override
public View getView(int position, View convertView, ViewGroup parent) {
  View view = convertView;
  if (view == null) {
    LayoutInflater vi = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    view = vi.inflate(R.layout.context_row_icon, null);
  }
  TextView mTitle = (TextView) view.findViewById(R.id.context_label);
  ImageView flag = (ImageView) view.findViewById(R.id.context_icon);

  mTitle.setText(values[position].getLabel(activity));
  mTitle.setTextColor(activity.getResources().getColor(R.color.context_item_disabled));

  return view;
}

Kod düzgün bir şekilde test edilmiş ve uygulama
mağazasında

0

Bu yöntemi deneyin. Benim için çalışıyor.

@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
    TextView textView = (TextView) view;
    ((TextView) adapterView.getChildAt(0)).setTextColor(Color.RED);
    ((TextView) adapterView.getChildAt(0)).setTextSize(20);
    Toast.makeText(this, textView.getText()+" Selected", Toast.LENGTH_SHORT).show();
}

0

sadece böyle yeni bir stil ekleyin:

<style name="mySpinnerItemStyle" parent="ThemeOverlay.AppCompat.Dark">
    <item name="android:textColor">#000</item>
    <item name="android:color">#000</item>
</style>

ve kullanın:

<Spinner
      android:id="@+id/spinnerCategories"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      style="@style/mySpinnerItemStyle"
      android:layout_margin="5dp" />

0
    String typeroutes[] = {"Select","Direct","Non Stop"};
    Spinner typeroute;

    typeroute = view.findViewById(R.id.typeroute);

    final ArrayAdapter<String> arrayAdapter5 = new ArrayAdapter<String>(
                getActivity(), android.R.layout.simple_spinner_item, typeroutes) {
            @Override
            public boolean isEnabled(int position) {
                if (position == 0) {
                    // Disable the first item from Spinner
                    // First item will be use for hint
                    return false;
                } else {
                    return true;
                }
            }

            public View getView(int position, View convertView, ViewGroup parent) {
                View v = super.getView(position, convertView, parent);
                ((TextView) v).setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
                ((TextView) v).setTextColor(Color.parseColor("#ffffff"));
                return v;
            }         ---->in this line very important so add this

            @Override
            public View getDropDownView(int position, View convertView,
                                        ViewGroup parent) {
                View view = super.getDropDownView(position, convertView, parent);
                TextView tv = (TextView) view;
                if (position == 0) {
                    // Set the hint text color gray
                    tv.setTextColor(Color.GRAY);
                } else {
                    tv.setTextColor(Color.BLACK);
                }
                return view;
            }
        };

        arrayAdapter5.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        typeroute.setAdapter(arrayAdapter5);

hepsi kodlamadan hoşlanıyor ...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.