Ich habe das gleiche Problem ein paar Mal gepostet, aber es wurde noch nicht gelöst. Ich habe eine ListFragment
und ich möchte das ausgewählte Element in der Liste hervorheben. Ich habe Vorschläge bekommen, einen "Selektor" zu benutzen. Ich verstehe nicht, wie man diesen Selektor benutzt. Meine ListFragment
Klasse ist:Ausgewähltes Element in "ListFragment" hervorheben?
// Create an adapter with list of stores and populate the list with
// values
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, StoreList);
setListAdapter(adapter);
mDbHelper.close();
}
/*
* (non-Javadoc)
*
* Handles the event when an item is clicked on left pane, performs action
* based on the selection in left pane
*
* @see android.app.ListFragment#onListItemClick(android.widget.ListView,
* android.view.View, int, long)
*/
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
String selectedStore = (String) getListAdapter().getItem(position);
DetailFragment fragment = (DetailFragment) getFragmentManager()
.findFragmentById(R.id.detailFragment);
if (fragment != null && fragment.isInLayout()) {
v.setBackgroundColor(getResources().getColor(R.color.BLUE));
// passes selectedStore to detail fragment
fragment.setText(selectedStore);
// getItemList(selectedStore);
}
Mit setBackground die Farbe dauerhaft einstellt, aber ich mag es weg, wenn ein anderes Element ausgewählt wird. Ich verstehe, wie man einen Selektor in einem ListView
verwendet, aber in meinem Fall, wenn ich keine xml für die Listview
definiert habe, wie würde ich dann einen "Selektor" verwenden? Ich verwende android.R.layout.simple_list_item_1
, die vordefiniert ist.
Das Konzept der "Auswahl" in Android für eine "ListView" ist für die Verwendung mit D-Pads, Trackballs, Pfeiltasten und anderen Zeigegeräten. Auf Tablets gibt es ein verwandtes Konzept einer "aktivierten" Zeile, das dazu bestimmt ist, das zuletzt angetippte Element von dem Touchscreen hervorzuheben, um einen Kontext für etwas benachbart zu ihm bereitzustellen (z. B. Hauptdetailmuster). – CommonsWare