Android TwoLineListItem

分享到:

TwoLineListItem是用在ListView中的,有两个子View。每一项有两个ID值为text1和text2的TextView的元素。也有一个ID是selecteIcon的元素,这个元素可以是任何View的子类,支持标准的布局资源文件(不包含所选择的icon),但是可以为这个对象自己定义XML布局文件

TwoLineListItem类结构:

java.lang.Object
	android.view.View
		android.view.ViewGroup
			android.widget.RelativeLayout
				android.widget.TwoLineListItem

XML属性:

android:mode 布局模式:oneLine 一行collapsing ,twoLine 两行

TwoLineListItem公共方法

Public TextView getText1 () 返回ID为Text1的TextView对象
Public TextView getText2 () 返回ID为Text2的TextView对象

TwoLineListItem实例,先看效果图:

主界面XML布局文件:

<?xml version="1.0" encoding="utf-8"?>  
<TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">

<ImageView android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_offline"/>

<TextView android:id="@android:id/text1"
android:layout_marginTop="1dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/icon"
android:textSize="15dip"
android:text="ssssssssssssssssssssssssss"
android:textStyle="bold" />

<TextView android:id="@android:id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@android:id/text1"
android:layout_alignLeft="@android:id/text1"
android:paddingBottom="4dip"
android:includeFontPadding="false"
android:textSize="15dip"
android:text=""
android:textStyle="normal" />

<ImageView android:id="@android:id/selectedIcon"
android:layout_marginTop="9dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="7dip"
android:src="@android:drawable/sym_action_call"/>
</TwoLineListItem>

Activity源码:

import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.os.Bundle;

public class TwoLineItemActivity extends ListActivity {
          @Override
          public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setListAdapter(new ContactArrayAdapter(this, R.layout.main,
          getContacts()));
          }
         private List getContacts() {
          List contacts = new ArrayList();
          Contacts c;
          c = new Contacts();
          c.setName("Shriram");
          c.setPhone("123456");
         contacts.add(c);
         c = new Contacts();
          c.setName("John");
          c.setPhone("456789");
          contacts.add(c);
          return contacts;
          }
}

自定义Adapter类:

import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TwoLineListItem;

public class ContactArrayAdapter extends ArrayAdapter {
          
          private int resourceId;
         public ContactArrayAdapter(Context context, int textViewResourceId,
          List object) {
          super(context, textViewResourceId, object);
          resourceId = textViewResourceId;
          // TODO Auto-generated constructor stub
          }
         @Override
          public View getView(int position, View convertView, ViewGroup parent) {
          Contacts contacts = getItem(position);
          if (contacts == null) {
          return null;
          }
          // 得到一个LayoutInflater实例
          LayoutInflater inflater = (LayoutInflater) getContext()
          .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
          TwoLineListItem view;
          if (convertView == null) {
          view = (TwoLineListItem) inflater
          .inflate(resourceId, parent, false);// 由xml生成View
          } else {
          view = (TwoLineListItem) convertView;
          }
          if (view.getText1() != null) {
          view.getText1().setText(contacts.getName());
          }
          if (view.getText2() != null) {
          view.getText2().setText(contacts.getPhone());
          }
          return view;
          }
}
昵    称:
验证码:

相关文档:

Android控件
Android基础知识
Android组件
Android实例