<!--StartFragment -->
?在平常应用中,我们会经常用到表格,但在Adnroid中,它并没有给我们提供表格控件,所以要我们自己动手去做。我把我自己做的一样表格样式在这与大学分享,如果你想要得到更加完美的表格,那就要你自己去改过了。样式如下:
?<!--StartFragment -->![]()
首先我们先看XML文件:
我先定义一个样表模板,让后在Java代码中调用这个模板,向模板里添加数据就可以了
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbarAlwaysDrawHorizontalTrack="true" > <TableLayout android:id="@+id/table" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TableRow> <View android:layout_width="1dip" android:background="#FF909090" /> <TextView android:id="@+id/tv1" android:layout_width="85dip" android:gravity="center" android:textSize="15px" /> <View android:layout_width="1dip" android:background="#FF909090" /> <TextView android:id="@+id/tv2" android:layout_width="85dip" android:gravity="center" android:textSize="15px" /> <View android:layout_width="1dip" android:background="#FF909090" /> <TextView android:id="@+id/tv3" android:layout_width="85dip" android:gravity="center" android:textSize="15px" /> <View android:layout_width="1dip" android:background="#FF909090" /> <TextView android:id="@+id/tv4" android:layout_width="85dip" android:gravity="center" android:textSize="15px" /> <View android:layout_width="1dip" android:background="#FF909090" /> <TextView android:id="@+id/tv5" android:layout_width="85dip" android:gravity="center" android:textSize="15px" /> <View android:layout_width="1dip" android:background="#FF909090" /> <TextView android:id="@+id/tv6" android:layout_width="85dip" android:gravity="center" android:textSize="15px" /> <View android:layout_width="1dip" android:background="#FF909090" /> </TableRow></TableLayout></LinearLayout>?
然后是Java代码:
首先自己定义一个Adapter,并继承SimpleAdapter,代码如下:
package com.util;import java.util.List;import java.util.Map;import android.content.Context;import android.graphics.Color;import android.view.View;import android.view.ViewGroup;import android.widget.SimpleAdapter;public class SpecialAdapter extends SimpleAdapter { private int[] colors = new int[]{ 0x30FF0000, 0x300000FF }; public SpecialAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) { super(context, data, resource, from, to); // TODO Auto-generated constructor stub } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); int colorPos = position % colors.length; if(colorPos==1){ view.setBackgroundColor(Color.argb(250, 255, 255, 255)); }else{ view.setBackgroundColor(Color.argb(250, 224, 243, 250)); } return view; }}?
最后是定义主函数TableActivity,代码如下:
package com.action;import java.util.ArrayList;import java.util.HashMap;import android.app.Activity;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.widget.HorizontalScrollView;import android.widget.ListView;import com.util.SpecialAdapter;public class TableActivity extends Activity { ListView lv; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ArrayList<HashMap<String,String>> mylist = new ArrayList<HashMap<String,String>>(); for(int i=1; i<15; i++){ HashMap<String,String> map1 = new HashMap<String,String>(); map1.put("Num", "123"); map1.put("Receive", "张三"); map1.put("PayWay", "货到付款"); map1.put("TotalPrice", "$98.3"); map1.put("State","已发贷"); map1.put("Date", "2011-2-14"); mylist.add(map1); } SpecialAdapter adapter = new SpecialAdapter(this, mylist, R.layout.main, new String[]{ "Num","Receive","Payway","TotalPrice","State","Date" }, new int[] { R.id.tv1,R.id.tv2,R.id.tv3,R.id.tv4,R.id.tv5,R.id.tv6 } ); lv = new ListView(this); lv.setHorizontalScrollBarEnabled(true); lv.setAdapter(adapter); HorizontalScrollView hsv = new HorizontalScrollView(this); hsv.addView(lv); setContentView(hsv); }}?
?
?