Android ListView Beispiel
In Android können Sie mitListView Komponenten in einer vertikal scrollbaren Liste anordnen.
In diesem Tutorial zeigen wir Ihnen 2ListViewBeispiele:
-
Normale Anzeige von Komponenten in
ListView. -
Benutzerdefinierter Array-Adapter zum Anpassen der Elementanzeige in
ListView.
P.S This project is developed in Eclipse 3.7, and tested with Android 2.3.3.
1. Normales ListView-Beispiel
In diesem Beispiel zeigen wir Ihnen, wie Sie eine Liste mit Fruchtnamen überListView anzeigen. Dies sollte einfach und selbsterklärend sein.
1.1 Android Layout file
Datei: res / layout / list_fruit.xml
1.2 ListView
package com.example.android;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class ListFruitActivity extends ListActivity {
static final String[] FRUITS = new String[] { "Apple", "Avocado", "Banana",
"Blueberry", "Coconut", "Durian", "Guava", "Kiwifruit",
"Jackfruit", "Mango", "Olive", "Pear", "Sugar-apple" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// no more this
// setContentView(R.layout.list_fruit);
setListAdapter(new ArrayAdapter(this, R.layout.list_fruit,FRUITS));
ListView listView = getListView();
listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(),
((TextView) view).getText(), Toast.LENGTH_SHORT).show();
}
});
}
}
1.3 Demo

2. Beispiel für einen benutzerdefinierten ArrayAdapter
In diesem Beispiel zeigen wir Ihnen, wie Sie 4 Elemente inListView erstellen und ein benutzerdefiniertes "ArrayAdapter" verwenden, um verschiedene Bilder basierend auf dem "Elementnamen" in der Liste anzuzeigen.
2.1 Images
Holen Sie sich 4 Bilder zur Demonstration.

2.2 Android Layout file
Datei: res / layout / list_mobile.xml
2.3 Custom ArrayAdapter
Eine Klasse erstellen erweitertArrayAdapter und passt die Elementanzeige in der MethodegetView() an.
package com.example.android.adaptor; import com.example.android.R; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; public class MobileArrayAdapter extends ArrayAdapter{ private final Context context; private final String[] values; public MobileArrayAdapter(Context context, String[] values) { super(context, R.layout.list_mobile, 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_mobile, 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("WindowsMobile")) { imageView.setImageResource(R.drawable.windowsmobile_logo); } else if (s.equals("iOS")) { imageView.setImageResource(R.drawable.ios_logo); } else if (s.equals("Blackberry")) { imageView.setImageResource(R.drawable.blackberry_logo); } else { imageView.setImageResource(R.drawable.android_logo); } return rowView; } }
2.4 ListViewListView, aber verwenden Sie den obigen benutzerdefinierten Adapter, um die Liste anzuzeigen.
package com.example.android;
import com.example.android.adaptor.MobileArrayAdapter;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.Toast;
import android.view.View;
public class ListMobileActivity extends ListActivity {
static final String[] MOBILE_OS =
new String[] { "Android", "iOS", "WindowsMobile", "Blackberry"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new MobileArrayAdapter(this, MOBILE_OS));
}
@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();
}
}
2.5 Demo

Quellcode herunterladen
Laden Sie beide Beispiele herunter -Android-ListView-Example.zip (21 KB)