使用x5cloud云平台来做网络彩讯-------------好友列表(六)

很多时候,避免不了数据的显示,而手机端最好的显示还是需要列表控件

list_items.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout    
    android:id="@+id/RelativeLayout01"    
    android:layout_width="320px"    
    xmlns:android="http://schemas.android.com/apk/res/android"    
    android:layout_height="wrap_content"    
   	android:paddingBottom="4dip"    
    android:paddingLeft="12dip"  
    android:paddingRight="12dip">  
<ImageView    
    android:paddingTop="12dip"  
    android:layout_alignParentRight="true"  
    android:layout_width="48px"    
    android:layout_height="48px"    
    android:id="@+id/ItemImage"  
    />    
<TextView    
    android:text="TextView01"    
    android:layout_height="wrap_content"    
    android:textSize="20dip"    
    android:layout_width="fill_parent"    
    android:id="@+id/ItemTitle"  
    />  
<TextView    
    android:text="TextView02"    
    android:layout_height="wrap_content"  
    android:textSize="10dip"  
    android:layout_width="fill_parent"    
    android:layout_below="@+id/ItemTitle"    
    android:id="@+id/ItemText"  
    />  
</RelativeLayout>

 gname.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <ListView 
    	android:id="@+id/listView1" 
    	android:layout_height="wrap_content" 
    	android:layout_width="wrap_content"/>
    
</LinearLayout>
public void onCreate(Bundle savedInstanceState) {   
	        super.onCreate(savedInstanceState);   
	        setContentView(R.layout.gname);   
	        ListView list = (ListView)findViewById(R.id.listView1); 

	        list=listFriends(list);
	       	        	      	        
	        
	    }   
	      	   	    
	    public ListView listFriends(ListView list){
	    	ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>(); 
	        String sql="select  friends.FriendId,users.name,friends.Describe  from users inner join  friends on users.Id=friends.FriendId";
	        DataSourse ds=new DataSourse(sql,"8888888888888888",1,"Android_CX","service.x5cloud.com");
	        X5DBResult rs=ds.getData();
	        int i=0;
	        while(rs.hasNext()){
	        	 HashMap<String, Object> map = new HashMap<String, Object>();   
		            map.put("ItemImage", R.drawable.icon);//图像资源的ID   
		            map.put("ItemTitle", rs.getObject(2).toString());   
		            map.put("ItemText", "\t"+rs.getObject(1).toString());   
		            listItem.add(map);   
		            i++;
			}
	        //生成适配器的Item和动态数组对应的元素   
	        SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,//数据源    
	            R.layout.list_items,//ListItem的XML实现   
	            //动态数组与ImageItem对应的子项           
	            new String[] {"ItemImage","ItemTitle", "ItemText"},    
	            //ImageItem的XML文件里面的一个ImageView,两个TextView ID   
	            new int[] {R.id.ItemImage,R.id.ItemTitle,R.id.ItemText}   
	        );   
	          
	        //添加并且显示   
	        list.setAdapter(listItemAdapter);  
	        return list; 
	    }

  上面的数据源采用了x5cloud云平台提供的API :  X5DBResult

public class DataSourse {
	private String sql;
	private String userid;	
	private int dbtype;						
	private String dbname;			
	private String serverip;	
	X5DBResult rs = null;
	DataSourse(String sql,String userid,int dbtype,String dbname,String serverip){
		this.sql=sql;
		this.userid=userid;
		this.dbtype=dbtype;
		this.dbname=dbname;
		this.serverip=serverip;
	}
	public X5DBResult getData(){
		X5Persist x5=new X5Persist(userid,dbtype,dbname,serverip);
		
		try {
			rs=x5.select(sql);
			return rs;	
		} catch (X5Exception e) {
			e.printStackTrace();
		}
		return null;		
	}
}