android学习笔记(8)使用XML布局文件控制android UI界面

2014-12-4 19:14:26     66 人阅读    

使用XML布局文件控制UI界面
      Android推荐使用XML布局文件来控制视图,这样不仅简单、明了,而且可以将应用的视图控制逻辑从Java代码中分离出来,放入XML文件中控制,这样更好地体MVC原则。

 

      当我们在Android应用的res/layout目录下定义一个主文件名任意的XML布局文件之后 (R.java会自动收录该布局资源),Java代码可通过如下方法在Activity中显示该视图:

        setContent:View< R. layout • <资源文件名字>);


当在布局文件中添加多个UI组件时,都可以为该UI组件指定android:id属性,该属性的属性值代表该组件的唯一标识。接下来如果希望在Java代码中访问指定UI组件,可通过 如下代码来访问它:


       findViewById(R. id.〈android, id 属性值>);


     一旦在程序中获得指定UI组件之后,接下来就可以通过代码来控制各UI组件的外观行 为了,包括为UI组件绑定事件监听器等。

在代码中控制UI界面

 

       虽然Android推荐使用XML布局文件来控制UI界面,但如果开发者愿意,Android允许开发者像幵发Swing应用一样,完全抛弃XML布局文件,完全在Java代码中控制UI界 面。如果希望在代码中控制UI界面,那么所有的UI组件都将通过new关键字创建出来,然 后以合适的方式“搭建”在一起即可。

 

U实例:用编程式的方式幵发UI界面

        下面将试图开发一个完全用代码控制UI界面的Android应用。由于该应用完全采用代码 来控制UI界面,因此可以完全抛弃XML布局文件。下面是通过代码控制UI界面的代码。 程序清单:org\crazyit\codeview\CodeView.java

package org.crazyit.codeview;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

public class CodeView extends Activity 
{
 //当第一次创建该Activity时回调该方法
 @Override
 public void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  //创建一个线性布局管理器
  LinearLayout layout = new LinearLayout(this);
  //设置该Activity显示layout
  super.setContentView(layout);
  layout.setOrientation(LinearLayout.VERTICAL);
  //创建一个TextView
  final TextView show = new TextView(this);
  //创建一个按钮
  Button bn = new Button(this);
  bn.setText(R.string.ok);
  bn.setLayoutParams(new ViewGroup.LayoutParams(
   ViewGroup.LayoutParams.WRAP_CONTENT
   , ViewGroup.LayoutParams.WRAP_CONTENT));
  //向Layout容器中添加TextView
  layout.addView(show);
  //向Layout容器中添加按钮
  layout.addView(bn);
        //为按钮绑定一个事件监听器
  bn.setOnClickListener(new OnClickListener()
  {
   @Override
   public void onClick(View v) 
   {
    show.setText("Hello , Android , "
     + new java.util.Date());
   }
  });
 }
}


        从上面的程序的粗体字代码可以看出,该程序中所用到的UI组件都是通过new关键字创建出来的,然后程序使用LinearLayout容器来“盛装”这些UI组件,这样就组成了图形用户界面。

 

         从上面的程序代码中不难看出,完全在代码中控制UI界面不仅不利于高层次的解耦,而且由于通过new关键来创建 UI组件,需要调用方法来设置UI组件的行为,因此代码也显得十分臃肿;相反,如果通过XML文件来控制UI界面,开发者只要在XML布局文件中使用标签即可创建UI组件,只要配置简单的属性即吋控制UI组件的行为,因此要简单得多。

 

提示: 虽然Android应用完全允许开发者像开发Swing应用一样在代码中控制UI 界面,但这种方式不仅编程烦琐,而且不利于高层次的解耦,因此不推荐开发者 使用这种方式。


原文地址:http://www.itmmd.com/201412/255.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

android学习笔记(9)使用XML布局文件和Java代码混合控制UI界面   上一篇
下一篇  java Rest学习-第一个Java REST 服务(2)-创建服务,下载项目

精彩回复
发表评论
姓名:       

《程序员app》专门为程序员量身定做!