`
jakielong
  • 浏览: 223090 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android动态创建一个个组件

阅读更多

Android 界面编程有两种基本的方法,一种是在代码中,动态创建一个个组件,及把这些组件用Layout来进行组合成复杂的界面展现。一种是用图形化的方式来编写 布局Layout,这些布局被保存在XML文件中,会编译成资源,被程序中的Activity来加载(setContentView()), 再通过findViewById方式来获得每一个界面组件的引用进行操作。

一,布局管理(Layout)
      每一个界面组件都是View的子类,都可以单独占用一个屏幕,但是真正的有用的界面都是这些组件的组合,在Android中都是用各种Layout来进行布局管理,这与传统的J2SE中的一些AWT,SWING界面方式基本相同,这里就不多说。
二,一个单独的界面元素:
     在前面说到Hello World例子中,讲过这样一段代码。在Activity中.
   public class HelloActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView tv = new TextView(this);
        tv.setText("Hello, World!");
        this.setContentView(tv);
      
    }
}
这里并没有用到Layout,这就是单独的组件方式。也可以改为:
super.onCreate(savedInstanceState);
        Button btn = new Button(this);
        btn.setText("TestButton");
        this.setContentView(btn);
编译运行,会有一个全屏的Button,当然这不是你想要的实用的界面.那我们就用Layout来布局
        super.onCreate(savedInstanceState);
        Button btn = new Button(this);
        btn.setText("TestButton");
        Button btn2 = new Button(this);
        btn2.setText("TestButton2");
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        layout.addView(btn);
        layout.addView(btn2);
        this.setContentView(layout);
编译运行,你就可以看到了两个上下排列的按钮,当然对于布局管理器的使用,做过PC 上AWT,SWING的人都不陌生,这里就不赘述。

       那如何响应事件呢: 大家猜一猜?想必大家不难猜到,在AWT中,在手机的J2ME中,都是用Listener 来处理事件响应,Android也未能脱俗。这与Blackberry,Symbian中的Observer是同一个道理。都是使用了设计模式的观察者模式。下面来看一个能响应事件的例子。

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


public class HelloActivity extends Activity implements OnClickListener {
  Button btn = null;
  Button btn2 = null;
    public void onClick(View v) {   
  if (v ==  btn)
  {
      this.setTitle("You Clicked Button1");     
  }
  if (v ==  btn2)
  {
      this.setTitle("You Clicked Button2");
  }  
 } 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        btn = new Button(this);
        btn2 = new Button(this);
        btn.setText("TestButton1");       
        btn2.setText("TestButton2");
        btn.setOnClickListener(this);
        btn2.setOnClickListener(this);
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        layout.addView(btn);
        layout.addView(btn2);
        this.setContentView(layout);      
    }
}

步骤是:
一,生成两个Button,配置Click事件监听者为HelloActivity ,此类实现了OnClickListener接口。
二,放入布局,按布局显示两个Button
三,按下其中一个Button,生成Click事件,调用HelloActivity 的OnClick接口函数。
四,对于View参数的值,判断是哪个View(Button)。改写Activity的Titile内容。注意,可别去对比View.getId(),缺省情况下,每个组件的Id值都为-1,除非人为设定Id值,用可视化编程时,为自动为其生成一个Id值。
转自:http://www.cnblogs.com/windwithlife/archive/2009/07/22/1528666.html
分享到:
评论

相关推荐

    安卓(Android)动态创建多个按钮并添加监听事件

    1.获取屏幕大小,以合理设定 按钮 大小及位置 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay()....3.这里创建16个按钮,每行放置4个按钮 Button Btn[] = new Button

    Android使用addView动态添加组件

    Android使用addView动态添加组件,自定义添加列表项,添加LinearLayout

    Android使用addView动态添加组件的方法

    主要为大家详细介绍了Android使用addView动态添加组件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Android 平板电脑应用开发入门经典

    ◆ 构建通用的Android UI,使用Fragment动态组装活动 ◆ 使用Action Bar条目展现常用功能 ◆ 检查Android用户界面,帮助你理解界面组件 ◆ 介绍如何创建基于位置的服务应用 ◆ 详细介绍如何构建位置监控应用 ◆ 帮助...

    Android高级编程--源代码

    2.1.2 创建第一个Android活动 22 2.1.3 Android应用程序的类型 27 2.2 面向移动设备的开发 28 2.2.1 关于硬件设计的考虑事项 28 2.2.2 考虑用户环境 31 2.2.3 Android开发 32 2.3 To-Do List示例 35 2.4 ...

    Android使用Fragment实现标签页

    Fragment必须被写成可重用的模块,你可以将多个Fragment组合到一个Activity中创建一个多模块界面,也可以在多个Activity中包含同一个Fragment的不同实例,这对于你的界面在不同屏幕尺寸下都能给用户完美的体验至关...

    Android基础教程

    1.2 创建第一个程序 1.3 在模拟器上运行程序 1.3.1 创建一个AVD 1.3.2 再试一次 1.4 在手机上运行程序 1.5 快速阅读指南 第2章 基本概念 2.1 Android的系统架构 2.1.1 Linux内核 2.1.2 本机库 2.1.3 Android运行时 ...

    Android 4高级编程(第3版)

    作为一本以实用性为目的的指导图书,本书带领您逐步完成复杂程度越来越高的Android项目,每个项目中都引入一种新的Android平台特性,并着重指出有助于编写引人入胜的应用程序的技术和最佳实践。 本书特色 ◆ 深入...

    Android 4高级编程(第3版)源代码

    作为一本以实用性为目的的指导图书,本书带领您逐步完成复杂程度越来越高的Android项目,每个项目中都引入一种新的Android平台特性,并着重指出有助于编写引人入胜的应用程序的技术和最佳实践。  《Android 4高级...

    Android 4高级编程(第3版).pdf 高清

    作为一本以实用性为目的的指导图书,《Android 4高级编程(第3版)》带领您逐步完成复杂程度越来越高的Android项目,每个项目中都引入一种新的Android平台特性,并着重指出有助于编写引人入胜的应用程序的技术和最佳...

    Android编程入门很简单.(清华出版.王勇).part1

    第3章创建第一个程序——helloworld 3.1新建第一个程序 3.1.1新建工程 3.1.2运行程序 3.2认识HelloWodd 3.2.1 首识Android工程 3.2.2认识布局文件 3.2.3认识值文件 3.2.4认识R文件 3.2.5认识注册文件 3.3调试程序 ...

    Android动态加载Activity原理详解

    加载一个Activity肯定不会像加载一般的类那样,因为activity作为系统的组件有自己的生命周期,有系统的很多回调控制,所以自定义一个DexClassLoader类加载器来加载插件中的Activity肯定是不可以的。 首先不得不了解...

    android开发实例大全_王东华

    实例007: 创建一个桌面组件Widget 11 实例008: 在屏幕中实现一个按钮效果 12 实例009: 在屏幕中显示文字 13 实例010: 在屏幕中显示编辑框 17 实例011: 在屏幕中显示复选框 18 实例012: 在屏幕中显示单选框 21 ...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Activity Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,是一个负责与用户交互的组件 SSH 为 Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。...

    Android编程入门很简单.(清华出版.王勇).part2

    第3章创建第一个程序——helloworld 3.1新建第一个程序 3.1.1新建工程 3.1.2运行程序 3.2认识HelloWodd 3.2.1 首识Android工程 3.2.2认识布局文件 3.2.3认识值文件 3.2.4认识R文件 3.2.5认识注册文件 3.3调试程序 ...

    Android开发艺术探索.任玉刚(带详细书签).pdf

    本书是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点。本书从三个方面来组织内容。第一,介绍Android开发者不容易掌握的一些知识点;第二,结合Android源代码和应用层...

    Android Fragment的静态注册和动态注册创建步骤

    1.创建一个StaticFragment.java文件继承Fragment类和一个static_fragment.xml文件完成fragment的布局。在StaticFragment.java中重载onCreateView(……)方法,通过调用inflater.inflate(……)方法并传入布局资源ID...

Global site tag (gtag.js) - Google Analytics