Kundenspezifischer Spinner Adapter

Ich wollte eine benutzerdefinierte Schrift an meinen Spinner anwenden. Der einzige Weg, den ich herausgefunden habe, ist das, um einen benutzerdefinierten Adapter zu erstellen. Hier ist mein Code

private class CustomAdapter extends ArrayAdapter { private Context context; private List<CharSequence> itemList; public CustomAdapter(Context context, int textViewResourceId,List<CharSequence> itemList) { super(context, textViewResourceId); this.context=context; this.itemList=itemList; } public TextView getView(int position, View convertView, ViewGroup parent) { TextView v = (TextView) super .getView(position, convertView, parent); Typeface myTypeFace = Typeface.createFromAsset(context.getAssets(), "fonts/gilsanslight.otf"); v.setTypeface(myTypeFace); v.setText(itemList.get(position)); return v; } public TextView getDropDownView(int position, View convertView, ViewGroup parent) { TextView v = (TextView) super .getView(position, convertView, parent); Typeface myTypeFace = Typeface.createFromAsset(context.getAssets(), "fonts/gilsanslight.otf"); v.setTypeface(myTypeFace); v.setText(itemList.get(position)); return v; } } 

Dann benutze ich

  • Warum ist das Demokit-Programm für die ADK in Arduino nicht kompiliert?
  • Wie man auf die zerlegbaren Ressourcen nach Namen in Android zugreifen kann
  • Abmelden oder Umschalten von Konten mit Parse Twitter / Facebook-Authentifizierung
  • Ersetzen Sie die Go-Taste auf der Softtastatur mit Next in Phonegap
  • Android Unit Testing: Bundle / Paketierbar
  • Kann eine bezahlte App in alpha / beta kostenlos getestet werden
  •  List<CharSequence> itemList = new ArrayList<CharSequence>( Arrays.asList(items)); mySpinnerArrayAdapter = new CustomAdapter(context,android.R.layout.simple_spinner_item,itemList); spinner.setAdapter(mySpinnerArrayAdapter); 

    Danach ist mein Adapter leer. Kann mir bitte jemand helfen? Die Artikel enthalten eine Liste der Länder.

    Mit freundlichen Grüßen,

  • Android: Bild über Bild
  • Retrofit-Konverter kann nicht auf GsonConverterFactory zugreifen
  • Android Source Repo GPG Public Key nicht gefunden
  • Verwenden Sie einen Handheld-Bluetooth-Drucker mit Android
  • Wie benutzt man den ProGuard in Android Studio?
  • Android Studio: Hintergrundaufgabe läuft unendlich
  • 5 Solutions collect form web for “Kundenspezifischer Spinner Adapter”

    Versuchen

     public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = getLayoutInflater(); View row = inflater.inflate(yourRowlayout, parent, false); TextView make = (TextView) row.findViewById(R.id.Make); Typeface myTypeFace = Typeface.createFromAsset(context.getAssets(), "fonts/gilsanslight.otf"); v.setTypeface(myTypeFace); v.setText(itemList.get(position)); return row; } public View getDropDownView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = getLayoutInflater(); View row = inflater.inflate(yourRowlayout, parent, false); TextView make = (TextView) row.findViewById(R.id.Make); Typeface myTypeFace = Typeface.createFromAsset(context.getAssets(), "fonts/gilsanslight.otf"); v.setTypeface(myTypeFace); v.setText(itemList.get(position)); return row; } 

    Pass ItemList als Parameter in Super Class Konstruktor

     public CustomAdapter(Context context, int textViewResourceId,List<CharSequence> itemList) { super(context, textViewResourceId, itemList); this.context=context; this.itemList=itemList; } 

    Probieren Sie das aus

    Innerhalb Ihrer Layoutdatei:

     <Spinner android:id="@+id/spinnerview" android:layout_width="180dp" android:layout_height="42dp" android:layout_marginLeft="105dp" android:layout_marginTop="45dp" android:background="@drawable/spinner_back" android:paddingLeft="5dp" android:spinnerMode="dropdown" android:visibility="visible" /> 

    In deiner string.xml :

      <string-array name="spinner_array_environtment"> <item>Test</item> <item>Production</item> </string-array> 

    In dir Java-Datei in onCreate() Methode:

     spinner_environment = (Spinner) findViewById(R.id.spinnerview); adapter = ArrayAdapter.createFromResource(this, R.array.spinner_array_environtment, R.layout.spinner); adapter.setDropDownViewResource(R.layout.spinner); spinner_environment.setAdapter(adapter); 

    Machen Sie neue spinner.xml Datei zu Ihrem Layout-Ordner:

    Innen spinner.xml Datei:

     <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/spinnerTarget" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="25dp" android:textColor="#4C4646" /> 

    Das ist es!!!

    Das einfachste, denke ich 🙂

     List<String> listOfItems = getListOfItems(); // returns ArrayList<String> ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, listOfItems); targetSpinner.setAdapter(spinnerAdapter); 

    Ok, um einfach eine Liste von String in einem Spinner zu setzen, sollte uns nicht zwingen, einen Adapter zu implementieren. Das ist ein Code-Blot und bekommen ein bisschen Muster verrückt, denke ich.

    Trick ist das simple_spinner_item id – verdammt, ich mag den R.id Mechanismus, aber das ist nicht intuitiv aus den docs.

    Das hat für mich gearbeitet (ussing.R.layout. Simple_spinner_dropdown_item ):

     @Override public View getView(int position, View convertView, ViewGroup parent) { CheckedTextView checkedTextView = (CheckedTextView) super.getView(position, convertView, parent); checkedTextView.setText(itemList.get(position)); return checkedTextView; } 

    Ich denke, es ist eine bessere Lösung, weil Sie nicht mehrmals aufblasen.

    Das Android ist ein Google Android Fan-Website, Alles über Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.