TableLayout布局使用代码进行显示内容

     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>


 

代码已贴完毕,相信大家看了,试着做做就会了!嘿嘿

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值