Salve ragazzi,
ho una listView nella mia app (questo è il suo layout xml, list_layout.xml):
codice:
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/arrayList"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:textFilterEnabled="true"
android:scrollbars="vertical"
android:drawSelectorOnTop="true"></ListView>
Ogni elemento della mia listView è composto da due textView (questo è il layout dell'elemento i-esimo della lista, custom_row.xml):
codice:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout android:layout_width="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/row_container"
android:padding="5px" android:layout_height="wrap_content"
android:background="@color/white" android:shrinkColumns="0">
<TableRow>
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_below="@+id/description"
android:id="@+id/description"
android:textColor="@color/black"
android:scrollHorizontally="true"
android:singleLine="true"></TextView>
</TableRow>
<TableRow>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/result"
android:textColor="@color/grey"
android:maxLines="1"
android:scrollHorizontally="true"></TextView>
</TableRow>
</TableLayout>
Ho quindi creato una activity, per la visualizzazione della mia lista, settando come layout appunto quello definito dal file list_layout.xml e utilizzando un arrayAdapter per gestire il contenuto della mia lista (Matches.java):
codice:
public class Matches extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//set layout
setContentView(R.layout.list_layout);
// obtain reference to listview
ListView listView = (ListView) findViewById(R.id.arrayList);
//listView.setBackgroundResource(R.drawable.list_selector);
ArrayAdapter<Match> arrayAdapter = new ArrayAdapter<Match>(
this, R.layout.custom_row, R.id.description, createItems()) {
@Override
public View getView (int position, View convertView, ViewGroup parent){
Match item = getItem (position);
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.custom_row, null);
TextView description = (TextView)rowView.findViewById(R.id.description);
TextView result = (TextView)rowView.findViewById(R.id.result);
description.setText(item.description + " Risultato: " + item.result );
result.setText(item.date + " " + item.hour);
return rowView;
}
};
listView.setAdapter(arrayAdapter);
...
La mia domanda è: come posso fare in modo di modificare il colore di background (ed eventualmente anche il colore del testo) degli elementi della lista al click e al focus?
Quello che accade è che, selezionando o cliccando un elemento della lista, gli viene dato un colore di background di default (arancio), impedendo la visualizzazione del testo
..
Spero di essere stato chiaro, chiedetemi pure ogni altro chiarimento
Grazie per l'aiuto