读书人

Android 动态加载格局

发布时间: 2012-08-09 15:59:21 作者: rapoo

Android 动态加载布局
首先,我们先把界面的框架图画出来,示意图如下:Android 动态加载格局中间白色部门是一个线性布局文件,我喜欢在画图的时候用不同的颜色将一块布局标示出来,方便查看。布局文件代码如下:?好了,到此我们的准备工作就己经完成,接下来就是要教大家如何实现动态加载上面所画的布局页面了,先看一下效果图:
Android 动态加载格局
点击第一个按钮

Android 动态加载格局
点击第二个按钮
动态加载代码如下:
package?com.terry;

import?android.app.Activity;
import?android.graphics.Color;
import?android.os.Bundle;
import?android.view.LayoutInflater;
import?android.view.View;
import?android.view.View.OnClickListener;
import?android.widget.Button;
import?android.widget.LinearLayout;
import?android.widget.ListView;
import?android.widget.TextView;

public?class?dynaActivity?extends?Activity?{
????/**?Called?when?the?activity?is?first?created.?*/
????@Override
????public?void?onCreate(Bundle?savedInstanceState)?{
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.main);

????????final?LayoutInflater?inflater?=?LayoutInflater.from(this);
????????Button?btn?=?(Button)?findViewById(R.id.Button01);
????????Button?btn2?=?(Button)?findViewById(R.id.Button02);
????????final?LinearLayout?lin?=?(LinearLayout)?findViewById(R.id.LinearLayout01);
????????btn.setOnClickListener(new?OnClickListener()?{

????????????@Override
????????????public?void?onClick(View?v)?{
????????????????//?TODO?Auto-generated?method?stub
????????????????LinearLayout?layout?=?(LinearLayout)?inflater.inflate(
????????????????????????R.layout.listview,?null).findViewById(R.id.layout);
????????????????ListView?lv=(ListView)layout.getChildAt(0);
????????????????lv.setAdapter(new?listAdapter(dynaActivity.this));
????????????????lin.removeAllViews();
????????????????lin.addView(layout);
????????????}
????????});??????
?//关键就是先找出要放到哪,然后再新建自己的View,加到要放的布局里就OK
????????btn2.setOnClickListener(new?OnClickListener()?{
????????????
????????????@Override
????????????public?void?onClick(View?v)?{
????????????????//?TODO?Auto-generated?method?stub
????????????????LinearLayout?layout?=?(LinearLayout)?inflater.inflate(
????????????????????????R.layout.hello,?null).findViewById(R.id.hellolayout);
?????????????????TextView?lv=(TextView)layout.getChildAt(0);
?????????????????lv.setTextColor(Color.RED);
????????????????lin.removeAllViews();
????????????????lin.addView(layout);
????????????}
????????});
????}
}

读书人网 >Android

热点推荐