当前位置:操作系统 > 安卓/Android >>

Android 程式开发:(九)用户界面 —— 9.1 纯编码实现UI

到目前为止,在所有的章节中,我们所看见的UI都是通过XML来实现的。之前也提及过,除了使用XML,也可以使用代码来实现UI界面。这个方式是很有用的,比如你的UI需要在运行时被生成。举个例子,假设你在编写一个“电影票的预定系统”,你的程序使用按钮Buttons去显示每个电影院的座位。在这种情况下,你就会需要依据实际情况去动态地生成UI。

下面的例子将会展示如何通过编码,动态地在Activity中生成UI。

1、创建一个工程:UICode。

2、UICodeActivity.java中的代码。

[java]
public class UICodeActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        //setContentView(R.layout.main); 
        // 视图的参数 
        LayoutParams params =  
            new LinearLayout.LayoutParams( 
                LayoutParams.FILL_PARENT, 
                LayoutParams.WRAP_CONTENT); 
 
        // 创建布局 
        LinearLayout layout = new LinearLayout(this); 
        layout.setOrientation(LinearLayout.VERTICAL); 
 
        // 创建一个TextView 
        TextView tv = new TextView(this); 
        tv.setText("This is a TextView"); 
        tv.setLayoutParams(params); 
 
        // 创建一个Button 
        Button btn = new Button(this); 
        btn.setText("This is a Button"); 
        btn.setLayoutParams(params); 
                         
        // 向布局中添加TextView 
        layout.addView(tv); 
 
        // 向布局中添加Button 
        layout.addView(btn); 
 
        // 创建布局使用的属性 
        LinearLayout.LayoutParams layoutParam =  
            new LinearLayout.LayoutParams( 
                    LayoutParams.FILL_PARENT, 
                    LayoutParams.WRAP_CONTENT ); 
 
        this.addContentView(layout, layoutParam); 
    } 

3、按F11调试,效果图如下。

 \

在这个例子中,首先要把setContentView()方法注释掉,目的是不让Activity去加载main.xml中的UI视图。

然后,创建一个LayoutParams对象,这个对象指定了布局的属性。

[java] 
LayoutParams params =  
    new LinearLayout.LayoutParams( 
        LayoutParams.FILL_PARENT, 
        LayoutParams.WRAP_CONTENT); 
也要创建一个LinearLayout对象,这个对象包含了activity中的所有视图。
[java] 
LinearLayout layout = new LinearLayout(this); 
layout.setOrientation(LinearLayout.VERTICAL); 
然后,创建一个TextView和一个Button。
[java]
TextView tv = new TextView(this); 
tv.setText("This is a TextView"); 
tv.setLayoutParams(params); 
 
Button btn = new Button(this); 
btn.setText("This is a Button"); 
btn.setLayoutParams(params); 
然后,把它们加到LinearLayout对象中去。
[java] 
layout.addView(tv); 
 
layout.addView(btn); 
同时,也要创建一个LayoutParams对象,供LinearLayout对象使用。
[java]
LinearLayout.LayoutParams layoutParam =  
    new LinearLayout.LayoutParams( 
            LayoutParams.FILL_PARENT, 
            LayoutParams.WRAP_CONTENT ); 
最后,把这个LinearLayout对象添加到Activity中去。
[java] 
this.addContentView(layout, layoutParam); 

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,