zoukankan      html  css  js  c++  java
  • 使用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显示下一张图片。

     

  • 相关阅读:
    SpringMvc 框架
    面试:你最大的长处和弱点分别是什么?这些长处和弱点对你在企业的业绩会有什么样的影响?
    线程、并发、并行、进程是什么,以及如何开启新的线程?
    面向对象三大特性
    一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?
    JavaScript 引擎
    Spring Data JPA简介 Spring Data JPA特点
    redo log 有什么作用?
    Spring的简介和优点?
    学习笔记——享元模式Flyweight
  • 原文地址:https://www.cnblogs.com/wolipengbo/p/3338264.html
Copyright © 2011-2022 走看看