很多时候,避免不了数据的显示,而手机端最好的显示还是需要列表控件
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;
}
}