使用XML布局文件和Java代码混合控制UI界面
完全使用Java代码来控制UI界面不仅烦琐、而且不利于解耦;而完全利用XML布局文件来控制UI界面虽然方便、便捷,但难免有失灵活。因此有些时候,可能需要混合使用XML布局文件和代码来控制UI界面。
当混合使用XML布局文件和代码来控制UI界面时,习惯上把变化下、行为比较固定的组件放在XML布局文件中管理,而那些变化较多、行为控制比较复杂的组件则交给Java代码老管理。
实例:简单图片浏览器
前台代码:
<?xml version="1.0" encoding="utf-8"?>
<!-- 定义一个线性布局容器 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
</LinearLayout>
上面的布局文件只是定义了一个简答线性布局。接下来我们会在程序中获取该线性布局容器,并往该容器中添加组件。下面是该示例的程序代码。
后台代码:
package org.crazyit.ui; import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout; public class MixView extends Activity
{
// 定义一个访问图片的数组
int[] images = new int[] {
R.drawable.java,
R.drawable.ee,
R.drawable.classic,
R.drawable.ajax,
R.drawable.xml, };
int currentImg = 0; //Bundle是用于在Activity中传递信息的,可以绑定各种数据
@Override
public void onCreate(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(new OnClickListener()
{
@Override
public void onClick(View v)
{
// 改变ImageView里显示的图片
image.setImageResource(images[++currentImg % images.length]);
}
});
}
}
上面的程序中第一行粗体字代码获取了该Activity所显示的LinearLayout(线性布局管理器),第2行和第3行粗体字代码用于创建一个ImageView,并将该ImageView添加到LinearLayout容器中——其中LinearLayout布局管理器通过XML布局文件管理,而ImageView组件则由Java代码管理。
除此之外,上面的程序还为ImageVew组件添加了一个单击事件。当用户单机该组件时,ImageView显示下一张图片。
使用XML布局文件和Java代码混合控制UI界面的更多相关文章
- AndroidStudio中使用XML和Java代码混合控制UI界面实现QQ相册照片列表页面
场景 效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建Androi ...
- 使用xml和java代码混合控制UI界面
main.xml.................... <?xml version="1.0" encoding="utf-8"?> <Li ...
- XML布局文件于Java代码使用问题
2013-9-21 问题一.不同的XML文件中相同类型的控件id相同,那么将这些不同的布局xml组合在一个大的布局中,如何解决相同id问题 ? 解决办法: 不同的布局文件XML要组合成一个新的大布局, ...
- 在java代码中控制UI界面
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle saved ...
- 在代码中控制UI界面
虽然Android推荐使用XML布局文件来控制UI界面,但如果开发者愿意,Android允许开发者完全抛弃XML布局文件,完全在Java代码中控制UI界面. 实例:用编程的方式开发UI界面 packa ...
- 使用XML文件和Java代码控制UI界面
Android推荐使用XML文件设置UI界面,然后用Java代码控制逻辑部分,这体现了MVC思想. MVC全名是Model View Controller,是模型(model)-视图(view)-控制 ...
- Android color(颜色) 在XML文件和java代码中
Android color(颜色) 在XML文件和java代码中,有需要的朋友可以参考下. 1.使用Color类的常量,如: int color = Color.BLUE;//创建一个蓝色 是使用An ...
- Android中measure过程、WRAP_CONTENT详解以及 xml布局文件解析流程浅析
转自:http://www.uml.org.cn/mobiledev/201211221.asp 今天,我着重讲解下如下三个内容: measure过程 WRAP_CONTENT.MATCH_PAREN ...
- Android学习笔记_31_通过后台代码生成View对象以及动态加载XML布局文件到LinearLayout
一.布局文件part.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...
随机推荐
- ARM汇编指令集
一.跳转指令.跳转指令用于实现程序流程的跳转,在ARM程序中有以下两种方法可以实现程序流程的跳转. Ⅰ.使用专门的跳转指令.Ⅱ.直接向程序计数器PC写入跳转地址值. 通过向程序计数器PC写入跳转地址值 ...
- 转:lr_eval_string,lr_save_string 和 sprintf 的使用
lr_eval_string,lr_save_string和 sprintf 函数使用介绍 一.lr_eval_string 使用介绍1.函数的主要作用:返回脚本中的一个参数当前的值,返回值类型:ch ...
- Spring创建对象的方式3种方式
此文为基础回顾,估计是最后一次总结. 项目利用maven进行架构,其基本项目结构为: 其中pom.xml中的内容为: <project xmlns="http://maven.apac ...
- Fox And Names
Description Fox Ciel is going to publish a paper on FOCS (Foxes Operated Computer Systems, pronounce ...
- 支持持久化的内存数据库-----Redis
一.Redis概述 1.1.什么是Redis Redis是一种高级key-value数据库.它跟memcached类似,不过数据 可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合 ...
- STL优先队列的使用
STL中有一个优先队列的容器可以使用. [头文件] queue 队列容器 vector 向量容器 [操作] 优先级队列支持的操作 q.empty() 如果队列为空,则返回true,否则 ...
- iOS之UITableView的上拉刷新
#import "ViewController.h" #import "UITableView+PullRefresh.h" @interface ViewCo ...
- Quick Cocos2dx Http通讯
服务端:Python 通讯协议:Http 参考文章: 1 用python实现一个基本的http server服务器 http://blog.sina.com.cn/s/blog_416e3063010 ...
- 前端之Sass/Scss实战笔记
简介 Sass 有两种语法规则(syntaxes),目前新的语法规则(从 Sass 3开始)被称为 “SCSS”( 时髦的css(Sassy CSS)),它是css3语法的的拓展级,就是说每一个语法正 ...
- Linux安装php的Redis扩展
1.安装redis 下载:https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz 上传phpredis-2.2.4.tar.gz到/usr ...