android - tamaño - texto Color ArrayAdapter con simple_list_item_single_choice
listview personalizado android studio ejemplo (2)
estoy creando una lista de visualización usando el adaptador de matriz. este es mi código
listView = new ListView(context);
ArrayAdapter<String>adapter = new ArrayAdapter<String>(context,android.R.layout.simple_list_item_single_choice, choice);
listView.setAdapter(adapter);
esto proporciona un color negro para el texto. Necesito cambiar el color del texto a color azul. Cómo podemos cambiar esto. utilicé mi diseño con el adaptador de matriz. y este es el código
listView = new ListView(context);
ArrayAdapter<String>adapter = new ArrayAdapter<String>(context,layout.my_single_choice, choice);
listView.setAdapter(adapter);
y el código para my_single_choice.xml se da a continuación
<?xml version="1.0" encoding="utf-8"?>
<RadioButton xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:id="@+id/my_choice_radio"
android:layout_height="match_parent"
android:button="@null"
android:drawableRight="@android:drawable/btn_radio"
android:text="Option"
style="@style/ListItemTextColor" />
y esto no funciona, puedo seleccionar todos mis botones de radio. y cuando clickListener no funciona, ...? cómo podemos resolverlo
Si realmente desea mantenerlo simple y no desea agregar ningún diseño o archivo nuevo, puede hacer algo como esto para cambiar el color de simple_list_item
s.
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, listItems) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView = (TextView) super.getView(position, convertView, parent);
// Set the color here
textView.setTextColor(Color.parseColor("#000000"));
return textView;
}
};
listView.setAdapter(adapter);
Hay algunos enfoques que podrían hacerse para usar esto. Las formas más comunes de hacer esto son las siguientes:
- Usar una vista de lista personalizada ( http://www.androidpeople.com/android-custom-listview-tutorial-part-1 )
Usar un diseño personalizado (no dentro del espacio de nombres android.R)
En su opinión, use este código:
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tv" android:textColor="@color/font_content" android:padding="5sp" android:layout_width="fill_parent" android:background="@drawable/rectgrad" android:singleLine="true" android:gravity="center" android:layout_height="fill_parent"/>
En tu clase, usa este código:
ListView lst = new ListView(context); String[] arr = {"Item 1","Item 2"}; ArrayAdapter<String> ad = new ArrayAdapter<String (context,R.layout.mytextview,arr); lst.setAdapter(ad);
Mi favorito, anulando el método getView del ArrayAdapter
ListView listView = (ListView) this.findViewById(R.id.listView); listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, MobileMuni.getBookmarkStore().getRecentLocations() ) { @Override public View getView(int position, View convertView, ViewGroup parent) { TextView textView = (TextView) super.getView(position, convertView, parent); String currentLocation = RouteFinderBookmarksActivity.this.getResources().getString(R.string.Current_Location); int textColor = textView.getText().toString().equals(currentLocation) ? R.color.holo_blue : R.color.text_color_btn_holo_dark; textView.setTextColor(RouteFinderBookmarksActivity.this.getResources().getColor(textColor)); return textView; } });
Además, este fue el resultado de una discusión desde aquí: Cómo cambiar el color del texto del elemento simple de la lista