1. MyAdapter.java
package com.example.listviewtest;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.content.Context;
public class MyAdapter extends ArrayAdapter<String> {
private final Context Context;
private final String[] data;
public MyAdapter(Context context, String[] data) {
super(context, R.layout.layout_main, data);
this.Context = context;
this.data = data;
}
@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.layout_main, parent, false);
TextView textView = (TextView)rowView.findViewById(R.id.label);
ImageView imageView = (ImageView)rowView.findViewById(R.id.icon);
textView.setText(data[position]);
String dataString = data[position];
if (dataString.startsWith("Windows7") || dataString.startsWith("iPhone")
|| dataString.startsWith("SamSung")) {
imageView.setImageResource(R.drawable.error);
} else {
imageView.setImageResource(R.drawable.check);
}
return rowView;
}
}
2. MyListActivity.java
package com.example.listviewtest;
import android.os.Bundle;
import android.app.ListActivity;
public class MyListActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] data = new String[] {
"Android", "iPhone", "SamSung","WindowsMobile", "Blackberry", "WebOS", "Ubuntu", "Windows7",
"Max OS X", "Linux", "OS/2","Fedaora","Linux Mint","Linux Open"};
MyAdapter adapter = new MyAdapter(this,data);
setListAdapter(adapter);
}
}
3. Layout_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/icon"
android:layout_width="66px"
android:layout_height="66px"
android:layout_marginLeft="4px"
android:layout_marginRight="10px"
android:layout_marginTop="4px"
>
</ImageView>
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/label"
android:textSize="66px" >
</TextView>
</LinearLayout>
參考資料:
LayoutInflater :
http://developer.android.com/reference/android/view/LayoutInflater.html
ListAdapter:
http://developer.android.com/reference/android/widget/ListAdapter.html
ListActivity:
http://developer.android.com/reference/android/app/ListActivity.html
3. 結果畫面