java xml界面布局_使用XML布局文件和Java代码混合控制UI界面

完全使用Java代码来控制UI界面不仅烦琐、而且不利于解耦;而完全利用XML布局文件来控制UI界面虽然方便、便捷,但难免有失灵活。因此有些时候,可能需要混合使用XML布局文件和代码来控制UI界面。

当混合使用XML布局文件和代码来控制UI界面时,习惯上把变化下、行为比较固定的组件放在XML布局文件中管理,而那些变化较多、行为控制比较复杂的组件则交给Java代码老管理。

实例:简单图片浏览器

前台代码:

android:id="@+id/root"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

上面的布局文件只是定义了一个简答线性布局。接下来我们会在程序中获取该线性布局容器,并往该容器中添加组件。下面是该示例的程序代码。

后台代码:

packageorg.crazyit.ui;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.ImageView;importandroid.widget.LinearLayout;public class MixView extendsActivity

{//定义一个访问图片的数组

int[] images = new int[] {

R.drawable.java,

R.drawable.ee,

R.drawable.classic,

R.drawable.ajax,

R.drawable.xml, };int currentImg = 0;

//Bundle是用于在Activity中传递信息的,可以绑定各种数据

@Overridepublic voidonCreate(Bundle savedInstanceState)

{super.onCreate(savedInstanceState);

setContentView(R.layout.main);//获取LinearLayout布局容器

LinearLayout main =(LinearLayout) findViewById(R.id.root);//程序创建ImageView组件

final ImageView image = new ImageView(this);//将ImageView组件添加到LinearLayout布局容器中

main.addView(image);//初始化时显示第一张图片

image.setImageResource(images[0]);

image.setOnClickListener(newOnClickListener()

{

@Overridepublic voidonClick(View v)

{//改变ImageView里显示的图片

image.setImageResource(images[++currentImg %images.length]);

}

});

}

}

上面的程序中第一行粗体字代码获取了该Activity所显示的LinearLayout(线性布局管理器),第2行和第3行粗体字代码用于创建一个ImageView,并将该ImageView添加到LinearLayout容器中——其中LinearLayout布局管理器通过XML布局文件管理,而ImageView组件则由Java代码管理。

除此之外,上面的程序还为ImageVew组件添加了一个单击事件。当用户单机该组件时,ImageView显示下一张图片。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值