TableLayout一般都会直接在XML里面进行编写吧,其实在代码里面也是可以完全实现的,所以呢我自己就做了一个在代码里面实现TableLayout的内容显示.
首先是main.XML代码:
<LinearLayout
android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:id="@+id/table_ll" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" ></LinearLayout> </LinearLayout> </ScrollView> </LinearLayout>
第二步是设置内容显示的XML文件,名字自己随便取:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout
android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal" android:paddingBottom="12dp" android:paddingTop="12dp" > <TextView android:id="@+id/tv_list_item" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_weight="1" android:textSize="20px" /> <ImageView android:id="@+id/iv_list_item" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:src="@drawable/arrow_right" /> </LinearLayout>
最后是主activity代码:
public class Table_Layout extends Activity{ private static final String MSG_1[]={"小白","小黑","小黄"}; private LinearLayout.LayoutParams layoutParams=null; private LinearLayout Layout_ll; private TableLayout tableLayout; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.table_layout); Layout_ll=(LinearLayout)findViewById(R.id.table_ll); setTable(); } private void setTable() { layoutParams=new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); layoutParams.bottomMargin = 30; layoutParams.topMargin = 40; layoutParams.leftMargin=30; layoutParams.rightMargin=30; Layout_ll.addView(getTable(MSG_1), layoutParams); } //获取table public TableLayout getTable(final String[] array){ tableLayout=new TableLayout(this); tableLayout.setLayoutParams(layoutParams); tableLayout.setStretchAllColumns(true); for (int i = 0; i < array.length; i++) { TableRow tableRow=new TableRow(this); View view=getView(array[i],i,array.length); tableRow.addView(view); tableLayout.addView(tableRow); } return tableLayout; } public View getView(final String msg,int current_Id,int totle_Num){ LinearLayout linearLayout=new LinearLayout(this); linearLayout.setOrientation(1); View view=LayoutInflater.from(this).inflate(R.layout.set_content, null); view.setBackgroundDrawable(new BitmapDrawable()); view.setFocusable(true); view.setClickable(true); TextView tv_name=(TextView)view.findViewById(R.id.tv_list_item); tv_name.setText(msg); tv_name.setTextSize(15); view.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if(msg.equals(MSG_1[0])){ Toast.makeText(Table_Layout.this, "小白", Toast.LENGTH_SHORT).show(); }else if(msg.equals(MSG_1[1])){ Toast.makeText(Table_Layout.this, "小黑", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(Table_Layout.this, "小黄", Toast.LENGTH_SHORT).show(); } } }); // 只有一项 if (totle_Num == 1) { view.setBackgroundResource(R.drawable.default_selector); return view; } // 第一项 else if (current_Id == 0) { view.setBackgroundResource(R.drawable.default_selector); } // 最后一项 else if (current_Id == totle_Num - 1) { view.setBackgroundResource(R.drawable.default_selector); setViewPadding(view); } else { view.setBackgroundResource(R.drawable.default_selector); setViewPadding(view); } linearLayout.addView(view); return linearLayout; } private void setViewPadding(View view) { LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); layoutParams.topMargin = -2; view.setLayoutParams(layoutParams); }
配上default_selector.xml代码:
<?xml version="1.0" encoding="utf-8"?> <selector <item android:state_pressed="true"><shape> <stroke android:width="1.0dp" android:color="#bfbfbf" /> <solid android:color="#00000000" /> <corners android:radius="5dp" /> </shape></item> <item><shape> <stroke android:width="1.0dp" android:color="#bfbfbf" /> <solid android:color="#00000000" /> <corners android:radius="5dp" /> </shape></item> </selector>
TableLayout布局使用代码进行显示内容,布布扣,bubuko.com
原文:http://blog.csdn.net/u014608640/article/details/24292937