Android控件--TwoLineListItem


TwoLineListItem继承Android.widget.RelativeLayout.由两个子视图组合而成,通常用在ListView中。

它需要两个TextView(ID值为text1,text2),还有一个可选的第三个VIew(ID值为selectedIcon)

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="wrap_content">  
  5.   
  6.     <ImageView android:id="@+id/icon"  
  7.         android:layout_width="wrap_content"  
  8.         android:layout_height="wrap_content"  
  9.         android:src="@android:drawable/presence_offline"/>  
  10.   
  11.     <TextView android:id="@android:id/text1"  
  12.         android:layout_marginTop="1dip"  
  13.         android:layout_width="wrap_content"  
  14.         android:layout_height="wrap_content"  
  15.         android:layout_toRightOf="@id/icon"  
  16.         android:textSize="15dip"  
  17.         android:text="ssssssssssssssssssssssssss"  
  18.         android:textStyle="bold" />  
  19.   
  20.     <TextView android:id="@android:id/text2"  
  21.         android:layout_width="wrap_content"  
  22.         android:layout_height="wrap_content"  
  23.         android:layout_below="@android:id/text1"  
  24.         android:layout_alignLeft="@android:id/text1"  
  25.         android:paddingBottom="4dip"  
  26.         android:includeFontPadding="false"  
  27.         android:textSize="15dip"  
  28.          android:text=""  
  29.         android:textStyle="normal" />  
  30.   
  31.     <ImageView android:id="@android:id/selectedIcon"  
  32.         android:layout_marginTop="9dip"  
  33.         android:layout_width="wrap_content"  
  34.         android:layout_height="wrap_content"  
  35.         android:layout_alignParentRight="true"  
  36.         android:layout_marginRight="7dip"  
  37.         android:src="@android:drawable/sym_action_call"/>  
  38. </TwoLineListItem>  
效果:


源码:

  1. import java.util.ArrayList;  
  2. import java.util.List;  
  3.   
  4. import android.app.ListActivity;  
  5. import android.os.Bundle;  
  6.   
  7. public class TwoLineItemActivity extends ListActivity {  
  8.      @Override  
  9.         public void onCreate(Bundle savedInstanceState) {  
  10.             super.onCreate(savedInstanceState);  
  11.             setListAdapter(new ContactArrayAdapter(this, R.layout.main, getContacts()));  
  12.         }  
  13.           
  14.         private List<Contacts> getContacts() {  
  15.             List<Contacts> contacts = new ArrayList<Contacts>();  
  16.             Contacts c;  
  17.             c = new Contacts();  
  18.             c.setName("Shriram");  
  19.             c.setPhone("123456");  
  20.        
  21.             contacts.add(c);  
  22.        
  23.             c = new Contacts();  
  24.             c.setName("John");  
  25.             c.setPhone("456789");  
  26.             contacts.add(c);  
  27.             return contacts;  
  28.        
  29.         }  
  30. }  
 
  1.   
  2. import java.util.List;  
  3.   
  4. import android.content.Context;  
  5. import android.view.LayoutInflater;  
  6. import android.view.View;  
  7. import android.view.ViewGroup;  
  8. import android.widget.ArrayAdapter;  
  9. import android.widget.TwoLineListItem;  
  10.   
  11. public class ContactArrayAdapter extends ArrayAdapter<Contacts> {  
  12.   
  13.     private int resourceId;  
  14.       
  15.     public ContactArrayAdapter(Context context, int textViewResourceId,List<Contacts>object) {  
  16.         super(context, textViewResourceId,object);  
  17.         resourceId = textViewResourceId;  
  18.         // TODO Auto-generated constructor stub   
  19.     }  
  20.     @Override  
  21.    public View getView(int position,View convertView,ViewGroup parent){  
  22.     Contacts contacts = getItem(position);  
  23.     if(contacts==null){  
  24.         return null;  
  25.     }  
  26.     //得到一个LayoutInflater实例   
  27.     LayoutInflater inflater  =(LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
  28.     TwoLineListItem view;  
  29.     if(convertView==null){  
  30.         view=(TwoLineListItem) inflater.inflate(resourceId, parent,false);//由xml生成View   
  31.     }else{  
  32.         view  = (TwoLineListItem) convertView;  
  33.     }  
  34.     if(view.getText1()!=null){  
  35.         view.getText1().setText(contacts.getName());  
  36.     }  
  37.     if(view.getText2()!=null){  
  38.         view.getText2().setText(contacts.getPhone());  
  39.     }  
  40.     return view;  
  41.          
  42.    }  
  43. }  

相关内容