希望使用ListView來展示資訊,每行一個表徵圖,右側是文字,分為兩行布局。經過嘗試,這樣可以實現:
1、Layout下建立item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:paddingBottom="2dip"
android:paddingLeft="12dip">
<ImageView
android:layout_width="wrap_content"
android:id="@+id/itemImage" android:layout_height="fill_parent"
android:paddingTop="2dip" >
</ImageView>
<TextView
android:text="TextView01"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/itemTitle" android:layout_toRightOf="@+id/itemImage" android:textSize="16dip"
android:textColor="#000">
</TextView>
<TextView
android:text="TextView02"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/itemText" android:layout_toRightOf="@+id/itemImage" android:layout_below="@+id/itemTitle"
android:textSize="10dip"
android:textColor="#000">
</TextView>
</RelativeLayout>
2、首頁面中Listview的樣式
<ListView android:layout_marginTop="20px" android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/MyListView"></ListView>
3、通過以下核心函數應用樣式
private View makeItemView(String strTitle, String strText, int resId) {
LayoutInflater inflater = (LayoutInflater) act
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// 使用View的對象itemView與R.layout.item關聯
View itemView = inflater.inflate(R.layout.item, null);
// 通過findViewById()方法執行個體R.layout.item內各組件
TextView title = (TextView) itemView.findViewById(R.id.itemTitle);
title.setText(strTitle);
TextView text = (TextView) itemView.findViewById(R.id.itemText);
text.setText(strText);
ImageView image = (ImageView) itemView.findViewById(R.id.itemImage);
image.setImageResource(resId);
return itemView;
}
4、主程式中的使用,把一系列數組傳遞進去
listView=(ListView)this.findViewById(R.id.MyListView);
listView.setAdapter(new ListViewAdapterImageText(this, titles,texts,resIds));
5、效果
6、ListView的單擊處理
import android.widget.AdapterView.OnItemClickListener;
import android.view.View;
//添加點擊
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0,View arg1, int arg2,
long arg3) {
setTitle("點擊第"+arg2+"個項目");
}
});
參考:Android ListView常用用法
參考:Android入門第七篇之ListView (二)