Cómo cambiar el color y la fuente en ListView

Estoy tratando de cambiar mi fuente (color y tamaño) y la parte trasera de mi ListView. Quiero cambiarlo con líneas de código no en xml. mi vista de lista se ve así: el xml:

   

y mi código es

 public class NewsActivity extends ListActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ArrayAdapter listItemAdapter = new ArrayAdapter( this,android.R.layout.simple_list_item_1, v_itemList ); setListAdapter(new ArrayAdapter(this, R.layout.list_item,ynetList)); View v=getListView() ; ListView lv = getListView(); 

¿qué sigue? por favor dame una base de ejemplo en mi código

Necesita crear un CustomListAdapter.

 public class CustomListAdapter extends ArrayAdapter  { private Context mContext; private int id; private List items ; public CustomListAdapter(Context context, int textViewResourceId , List list ) { super(context, textViewResourceId, list); mContext = context; id = textViewResourceId; items = list ; } @Override public View getView(int position, View v, ViewGroup parent) { View mView = v ; if(mView == null){ LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); mView = vi.inflate(id, null); } TextView text = (TextView) mView.findViewById(R.id.textView); if(items.get(position) != null ) { text.setTextColor(Color.WHITE); text.setText(items.get(position)); text.setBackgroundColor(Color.RED); int color = Color.argb( 200, 255, 64, 64 ); text.setBackgroundColor( color ); } return mView; } } 

El elemento de la lista se ve así (custom_list.xml):

     

Use las API de TextView para decorar su texto a su gusto

y lo usarás así

 listAdapter = new CustomListAdapter(YourActivity.this , R.layout.custom_list , mList); mListView.setAdapter(listAdapter); 

Crea un CustomAdapter y en él tienes el getView () así que si quieres cambiar el color de fondo de la vista de lista usa esto:

 v.setBackgroundColor(Color.CYAN); 

Si desea cambiar el textColor, haga esto:

 tv.setTextColor(Color.RED); 

y para el tamaño del texto:

 tv.setTextSize(20); 

donde ‘v’ es la vista de lista y ‘tv’ es la vista de texto

Aún mejor, no es necesario crear un diseño xml de Android separado para la vista de celda de la lista. Solo puede usar “android.R.layout.simple_list_item_1” si la lista solo contiene textview.

 private class ExampleAdapter extends ArrayAdapter{ public ExampleAdapter(Context context, int textViewResourceId, String[] objects) { super(context, textViewResourceId, objects); } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); TextView tv = (TextView) view.findViewById(android.R.id.text1); tv.setTextColor(0); return view; } 

Si desea establecer el fondo de la lista, coloque la imagen antes de la

 < ImageView android:background="@drawable/image_name" android:layout_width="fill_parent" android:layout_height="wrap_content"/> 

y si desea cambiar el color, coloque el código de color en el cuadro de texto de arriba como este

  android:textColor="#ffffff" 

Si solo necesita cambiar algunos parámetros de la Vista y el comportamiento predeterminado de ArrayAdapter, está bien para usted:

  import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; public class CustomArrayAdapter extends ArrayAdapter { public CustomArrayAdapter(Context context, int textViewResourceId) { super(context, textViewResourceId); } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); // Here all your customization on the View view.setBackgroundColor(.......); ... return view; } } 

Si quieres usar un color de colors.xml , experimenta:

  public View getView(int position, View convertView, ViewGroup parent) { ... View rowView = inflater.inflate(this.rowLayoutID, parent, false); rowView.setBackgroundColor(rowView.getResources().getColor(R.color.my_bg_color)); TextView title = (TextView) rowView.findViewById(R.id.txtRowTitle); title.setTextColor( rowView.getResources().getColor(R.color.my_title_color)); ... } 

Puedes usar también:

 private static final int bgColor = 0xAAAAFFFF; public View getView(int position, View convertView, ViewGroup parent) { ... View rowView = inflater.inflate(this.rowLayoutID, parent, false); rowView.setBackgroundColor(bgColor); ... } 

Puede seleccionar un niño como

 TextView tv = (TextView)lv.getChildAt(0); tv.setTextColor(Color.RED); tv.setTextSize(12); 

utilícelos en código Java como este:

  color = getResources().getColor(R.color.mycolor); 

El método getResources() devuelve la clase ResourceManager para la actividad actual, y getColor() le pide al administrador que busque un color dado un ID de recurso

en Android 6.0 puedes cambiar el color del texto como a continuación

 holder._linear_text_active_release_pass.setBackgroundColor(ContextCompat.getColor(context, R.color.green));