java android 布局_android如下布局怎么用java动态生成

这篇博客展示了如何在Android中不使用XML而用Java代码动态创建线性布局,并添加多个TextView,每个TextView作为表单控件如单选、下拉菜单等的入口,点击后跳转到相应功能页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

展开全部

代码如下:

package com.app;

import com.app.form.AutoCompleteActivity;

import com.app.form.ProgressActivity;

import com.app.form.RadioAndCheckboxActivity;

import com.app.form.RatingBarActivity;

import com.app.form.SeekBarActivity;

import com.app.form.SpinnerActivity;

import com.app.form.ToggleButtonActivity;

import com.app.list.ExpandableList1;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.ViewGroup.LayoutParams;

import android.widget.LinearLayout;

import android.widget.TextView;

/**

* 范例:五种布局方式的范例

* 1.该文件中没有用到XML形式的静态布局,而是动态布局

* @author Administrator

*/

public class MainActivity extends Activity implements OnClickListener {

//实例化一个32313133353236313431303231363533e59b9ee7ad943133333533653110个TextView的数组

TextView tvArray[] = new TextView[20];

//实例化一个线性布局的参数

LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(

LayoutParams. FILL_PARENT, LayoutParams.FILL_PARENT);

LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(

LayoutParams. FILL_PARENT, LayoutParams.WRAP_CONTENT);

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//实例化线性布局并设置垂直方向

LinearLayout lin1 = new LinearLayout(this);

lin1.setOrientation(LinearLayout. VERTICAL);

//创建n个TextView并设置ID 监听器等,最后添加到线性布局中

for (int i = 0; i < 20; i++) {

tvArray[i] = new TextView(this);

tvArray[i].setId(i);

tvArray[i].setOnClickListener(this);

lin1.addView( tvArray[i], lp2 );

}

//设置各TextView的文本

tvArray[0].setText("表单控件-单选Radio和复选Checkbox" );

tvArray[1].setText("表单控件-下拉菜单Spinner" );

tvArray[2].setText("表单控件-自动完成AutoComplete" );

tvArray[3].setText("表单控件-进度条ProgressBar" );

tvArray[4].setText("表单控件-滑动条SeekBar" );

tvArray[5].setText("表单控件-评分RatingBar" );

tvArray[6].setText("表单控件-ToggleButton" );

tvArray[7].setText("复合控件-列表ListView" );

tvArray[8].setText("复合控件-折叠式列表ExpandableList" );

tvArray[9].setText("复合控件-网格视图GridView" );

tvArray[10].setText("复合控件-滚动视图ScrollView" );

setContentView(lin1); //此处从R.layout.XXX改成了某个View的实例

}

@Override

public void onClick(View v) {

Intent intent = new Intent();

if(v.getId()==0) {

intent.setClass(MainActivity. this, RadioAndCheckboxActivity.class );

} else if (v.getId()==1) {

intent.setClass(MainActivity. this, SpinnerActivity.class );

} else if (v.getId()==2) {

intent.setClass(MainActivity. this, AutoCompleteActivity.class );

} else if (v.getId()==3) {

intent.setClass(MainActivity. this, ProgressActivity.class );

} else if (v.getId()==4) {

intent.setClass(MainActivity. this, SeekBarActivity.class );

} else if (v.getId()==5) {

intent.setClass(MainActivity. this, RatingBarActivity.class );

} else if (v.getId()==6) {

intent.setClass(MainActivity. this, ToggleButtonActivity.class );

} else if (v.getId()==7) {

intent.setClass(MainActivity. this, ListsActivity.class );

} else if (v.getId()==8) {

intent.setClass(MainActivity. this, ExpandableList1.class );

} else if (v.getId()==9) {

intent.setClass(MainActivity. this, Grid.class);

} else if (v.getId()==10) {

intent.setClass(MainActivity. this, ScrollViewActivity.class );

}

startActivity(intent);

}

}

本回答由网友推荐

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值