Come impostare il carattere personalizzato per listview android?

Sono nuovo a android e usando il carattere personalizzato per listview.I non sapevo come usare il carattere in una vista di elenco. Ho provato anche con diversi esempi ma non posso risolvere il mio problema. Qui è il mio codice

public class HomeScreen extends ListActivity { private static final int QUICK_START_INDEX =0; private static final int CUSTOM = 1; private static final int CALL_LIST = 2; private static final int CALENDAR = 3; private static final int TEMPLATES=4; private static final int USER_GUIDE = 5; static final String[] LIST = new String[] { "QuickStart", "Custom", "CallList", "Calendar","Templates","UserGuide"}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setListAdapter(new MobileArrayAdapter(this, LIST)); /*Typeface font = Typeface.createFromAsset(getAssets(), "earthkid.ttf"); */ } @Override protected void onListItemClick(ListView l, View v, int position, long id) { //get selected items String selectedValue = (String) getListAdapter().getItem(position); /*Toast.makeText(this, selectedValue, Toast.LENGTH_SHORT).show();*/ if(position==QUICK_START_INDEX){ startActivity(new Intent(HomeScreen.this,ConfDialer.class)); } } } 

MobileArrayAdapter.java

  • Errore durante l'analisi dei dati org.json.JSONException: Fine dell'inserimento al carattere 0 di - Android
  • Ottenere l'anno, il mese e la data in Android
  • Android Studio ha bloccato l'avvio dell'emulatore
  • Android SQLite Elimina il problema di row
  • Android Google Maps Api V2, ottenendo le coordinate per l'attuale centro di mappe
  • Cambiare il colore all'interno di stringhe.xml
  •  public class MobileArrayAdapter extends ArrayAdapter<String> { private final Context context; private final String[] values; public MobileArrayAdapter(Context context, String[] values) { super(context, R.layout.list_home, values); this.context = context; this.values = values; } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View rowView = inflater.inflate(R.layout.list_home, parent, false); TextView textView = (TextView) rowView.findViewById(R.id.label); ImageView imageView = (ImageView) rowView.findViewById(R.id.logo); textView.setText(values[position]); // Change icon based on name String s = values[position]; System.out.println(s); if (s.equals("QuickStart")) { imageView.setImageResource(R.drawable.quick_strat); } else if (s.equals("Custom")) { imageView.setImageResource(R.drawable.customize); } else if (s.equals("CallList")) { imageView.setImageResource(R.drawable.call_list); } else if(s.equals("Calendar")){ imageView.setImageResource(R.drawable.calendar); } else if(s.equals("Templates")){ imageView.setImageResource(R.drawable.templates); } else{ imageView.setImageResource(R.drawable.user_guide); } return rowView; } } 

    Qualcuno potrebbe fornire una soluzione per questo.

  • Genera l'image del codice a barre nell'applicazione Android
  • come avviare il servizio con SwitchPreference e ScreenOn Receiver in android?
  • Sottotami Android ListView
  • Notifiche di gruppo in un indossabile dalla micro applicazione
  • Programmaticamente aggiorna il widget da attività / servizio / ricevente
  • onUserInteraction non funziona in DialogPreference
  • 6 Solutions collect form web for “Come impostare il carattere personalizzato per listview android?”

    Prova questo…

    È ansible sovrascrivere il getView () quando si crea l'Adapter in Activity, ad esempio di SimpleAdapter con nome e titolo .

     //global declaration ListAdapter adapter; adapter = SimpleAdapter(getActivity(), your_list, R.layout.your_list_items, new String[]{"Name", "Title"}, new int[]{R.id.name, R.id.title}){ @Override public View getView(int position, View convertView, ViewGroup parent) { v = convertView; if(v == null){ LayoutInflater li = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = li.inflate(R.layout.interview_list_items, null); TextView titleText= (TextView) v.findViewById(R.id.title); TextView nameText= (TextView) v.findViewById(R.id.name); childFont = Typeface.createFromAsset(getActivity().getAssets(),"fonts/Roboto-Light.ttf"); titleText.setTypeface(childFont); nameText.setTypeface(childFont); return super.getView(position, v, parent); } }; 

    O provalo nella class Adapter come questo …

     public class MobileArrayAdapter extends ArrayAdapter<String> { private final Context context; private final String[] values; private Typeface tf; public MobileArrayAdapter(Context context, String[] values) { super(context, R.layout.list_home, values); this.context = context; this.values = values; this.tf = Typeface.createFromAsset(context.getAssets(), "fonts/Roboto-Light.ttf"); //initialize typeface here. } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View rowView = inflater.inflate(R.layout.list_home, parent, false); TextView textView = (TextView) rowView.findViewById(R.id.label); ImageView imageView = (ImageView) rowView.findViewById(R.id.logo); textView.setTypeface(tf); // set typeface here textView.setText(values[position]); // Change icon based on name String s = values[position]; System.out.println(s); if (s.equals("QuickStart")) { imageView.setImageResource(R.drawable.quick_strat); } else if (s.equals("Custom")) { imageView.setImageResource(R.drawable.customize); } else if (s.equals("CallList")) { imageView.setImageResource(R.drawable.call_list); } else if(s.equals("Calendar")){ imageView.setImageResource(R.drawable.calendar); } else if(s.equals("Templates")){ imageView.setImageResource(R.drawable.templates); } else{ imageView.setImageResource(R.drawable.user_guide); } return rowView; } 

    }

    struttura della directory app

    immettere qui la descrizione dell'immagine

    utilizzare questo codice

    Nel tuo MobileArrayAdapter

     class MobileArrayAdapter extends ArrayAdapter<CharSequence>{ Typeface tf; public MobileArrayAdapter(Context context, String[] values,String FONT) { tf = Typeface.createFromAsset(context.getAssets(), FONT); } 

    Da where stai chiamando l'adattatore

     listAdapter = new MobileArrayAdapter(this, R.layout.custom_list_text, R.arrays.arraysName, "name_of_font.ttf"); 

    Uso

     setTypeface(Typeface) 

    in object Textview.

    devi solo cambiare il font in questo layout " R.layout.list_home ". Poiché list_home è il layout che funziona come una singola row. Quindi, se lo modifichi, influirà anche sul colore / text / stile della listview .

    Inserire un file di carattere personalizzato .ttf nella cartella degli assets e utilizzare il codice riportto di seguito per modificare il carattere

     text.setTypeface(Typeface.createFromAsset(getAssets(), "/*path to your font file */")); 

    Il path sarebbe il path dei beni. Se il file è solo nella cartella di risorse, utilizzare solo il nome del file con l'estensione.

    Piace

      text.setTypeface(Typeface.createFromAsset(getAssets(), "arial.ttf")); 

    Questa è la mia scheda personalizzata come call e quali parametri vengono dati nella mia attività di chiamata.

     public class CustomData extends ArrayAdapter<CharSequence> { Context context; int layoutResourceId; CharSequence data[] = null; Typeface tf; public CustomData(Context context, int layoutResourceId, CharSequence[] data, String FONT) { super(context, layoutResourceId, data); this.layoutResourceId = layoutResourceId; this.context = context; this.data = data; tf = Typeface.createFromAsset(context.getAssets(), FONT); } } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.