如何自定义Android 界面说明?
创始人
2024-06-23 03:50:38
0

如果你想直接转到你自己定义的Android 界面,你可以在接收者的IntentFilter中加入一个自定义的Action值,他们都是使用了设计模式的观察者模式,仅供大家学习参考哦。

一种是用图形化的方式来编写 布局Layout,这些布局被保存在XML文件中,会编译成资源,被程序中Activity来加载(setContentView()), 再通过findViewById方式来获得每一个界面组件的引用进行操作。

对于大多数人来说,喜欢最直观的方式,既代码中动态生成的方式。我们就先从这里说起,至于可视化编程及布局资源的方式以后专门来讲述。

一,布局管理(Layout)
每一个界面组件都是View的子类,都可以单独占用一个屏幕,但是真正的有用的界面都是这些组件的组合,在Android 界面中都是用各种Layout来进行布局管理,这与传统的J2SE中的一些AWT,SWING界面方式基本相同,这里就不多说。

二,一个单独的界面元素:

  1. public class HelloActivity extends Activity {  
  2.     /** Called when the activity is first created. */  
  3.     @Override  
  4.     public void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         TextView tv = new TextView(this);  
  7.         tv.setText("Hello, World!");  
  8.         this.setContentView(tv);  
  9.          
  10.     }  
  11. }  
  12. 这里并没有用到Layout,这就是单独的组件方式。也可以改为:  
  13. super.onCreate(savedInstanceState);  
  14.         Button btn = new Button(this);  
  15.         btn.setText("TestButton");  
  16.         this.setContentView(btn);  
  17. 编译运行,会有一个全屏的Button,当然这不是你想要的实用的界面.那我们就用Layout来布局  
  18.         super.onCreate(savedInstanceState);  
  19.         Button btn = new Button(this);  
  20.         btn.setText("TestButton");  
  21.         Button btn2 = new Button(this);  
  22.         btn2.setText("TestButton2");  
  23.         LinearLayout layout = new LinearLayout(this);  
  24.         layout.setOrientation(LinearLayout.VERTICAL);  
  25.         layout.addView(btn);  
  26.         layout.addView(btn2);  
  27.         this.setContentView(layout);  

编译运行,你就可以看到了两个上下排列的按钮,当然对于布局管理器的使用,做过PC 上AWT,SWING的人都不陌生,这里就不赘述。那如何响应事件呢: 大家猜一猜?想必大家不难猜到。

在AWT中,在手机的J2ME中,都是用Listener 来处理事件响应,Android 界面也未能脱俗。这与Blackberry,Symbian中的Observer是同一个道理。都是使用了设计模式的观察者模式。下面来看一个能响应事件的例子。#t#

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

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...