1.普通實現listView效果 java
模板文件 android
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:id="@+id/ll" android:layout_width="match_parent" android:layout_height="match_parent" > </LinearLayout>動態建立TextView
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); LinearLayout lv = (LinearLayout) findViewById(R.id.ll); for (int i = 0; i < 10; i++) { TextView tv = new TextView(this); tv.setTextSize(20); tv.setTextColor(Color.BLACK); tv.setText("name"+i); lv.addView(tv); } }2:自定義適配器
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:id="@+id/ll" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@+id/lv" android:layout_width="wrap_content" android:layout_height="wrap_content" ></ListView> </LinearLayout>
package com.example.studyReturn; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.app.ActionBar; import android.app.Fragment; import android.graphics.Color; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; import android.os.Build; public class MainActivity extends Activity { private List<Map<String,String>> ls; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ls = new ArrayList<Map<String,String>>(); for (int i = 0; i < 10; i++) { Map<String,String> mp = new HashMap<String, String>(); mp.put("name", "name"+i); mp.put("number", "number"+i); ls.add(mp); } ListView lv = (ListView) findViewById(R.id.lv); lv.setAdapter(new MyAdapter()); } class MyAdapter extends BaseAdapter { @Override public int getCount() { // TODO Auto-generated method stub return ls.size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View arg1, ViewGroup arg2) { //普通方式 /* TextView tv = new TextView(getApplicationContext()); Map<String,String> mp = ls.get(position); tv.setTextSize(20); tv.setTextColor(Color.BLACK); tv.setText(mp.get("name")); return tv;*/ //高級方式 Map<String,String> mp = ls.get(position); View view = View.inflate(getApplicationContext(), R.layout.list_item, null); TextView tview = (TextView) view.findViewById(R.id.tid); tview.setText(mp.get("name")); TextView nview = (TextView) view.findViewById(R.id.nid); nview.setText(mp.get("number")); return view; } } }
高級方式須要建立另一個 list_item.xml佈局文件 app
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/tid" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/nid" android:layout_marginLeft="20dip" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
3.ArrayAdapter ide
private String[] names = {"第一個","第二個","第三個","第四個"}; private ListView lv; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.lv); lv.setAdapter(new ArrayAdapter<>(this, R.layout.list_item, R.id.tid, names)); }
SimpleAdapter 佈局
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.lv); List<Map<String,Object>> data = new ArrayList<Map<String,Object>>(); for(int i = 0;i < 10; i++){ Map<String,Object> mp = new HashMap<String,Object>(); mp.put("name", "第"+i); mp.put("icon", R.drawable.ic_launcher);//能夠隨機選擇圖片 data.add(mp); } lv.setAdapter(new SimpleAdapter( this,data, R.layout.simple_adapter,new String[]{"name","icon"}, new int[]{R.id.tid,R.id.img_id} ) ); }
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/img_id" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/tid" android:layout_marginLeft="20dip" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>