Android Button应用法则
创始人
2024-06-21 21:10:23
0

我们曾经在其他文章中为大家详细介绍了一些可视化编程以及基于界面的编程方法,那么今天大家将会了解到有关Android Button的具体应用,以此更进一步加深对界面编程的认知程度。#t#

Android 界面编程有两种基本的方法,一种是在代码中,动态创建一个个组件,及把这些组件用Layout来进行组合成复杂的界面展现。一种是用图形化的方式来编写 布局Layout,这些布局被保存在XML文件中,会编译成资源,被程序中的Activity来加载(setContentView()), 再通过findViewById方式来获得每一个界面组件的引用进行操作。对于大多数人来说,喜欢最直观的方式,既代码中动态生成的方式。我们就先从这里说起,至于可视化编程及布局资源的方式以后专门来讲述。

一,Android Button布局管理(Layout)

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

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

在前面说到Hello World例子中,讲过这样一段代码。在Activity中.

  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. }  

这里并没有用到Layout,这就是单独的组件方式。也可以改为:

  1. super.onCreate(savedInstanceState);  
  2. Button btn = new Button(this);  
  3. btn.setText("TestButton");  
  4. this.setContentView(btn); 

编译运行,会有一个全屏的Button,当然这不是你想要的实用的界面.那我们就用Layout来布局

  1. super.onCreate(savedInstanceState);  
  2. Button btn = new Button(this);  
  3. btn.setText("TestButton");  
  4. Button btn2 = new Button(this);  
  5. btn2.setText("TestButton2");  
  6. LinearLayout layout = new LinearLayout(this);  
  7. layout.setOrientation(LinearLayout.VERTICAL);  
  8. layout.addView(btn);  
  9. layout.addView(btn2);  
  10. this.setContentView(layout); 

编译运行,你就可以看到了两个上下排列的Android Button,当然对于布局管理器的使用,做过PC 上AWT,SWING的人都不陌生,这里就不赘述。

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

 

  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.view.View;  
  4. import android.view.View.OnClickListener;  
  5. import android.widget.Button;  
  6. import android.widget.LinearLayout;  
  7. public class HelloActivity extends Activity implements OnClickListener {  
  8. Button btn = null;  
  9. Button btn2 = null;  
  10. public void onClick(View v) {   
  11. if (v == btn)  
  12. {  
  13. this.setTitle("You Clicked Button1");   
  14. }  
  15. if (v == btn2)  
  16. {  
  17. this.setTitle("You Clicked Button2");  
  18. }   
  19. }   
  20. @Override  
  21. public void onCreate(Bundle savedInstanceState) {  
  22. super.onCreate(savedInstanceState);  
  23. btn = new Button(this);  
  24. btn2 = new Button(this);  
  25. btn.setText("TestButton1");   
  26. btn2.setText("TestButton2");  
  27. btn.setOnClickListener(this);  
  28. btn2.setOnClickListener(this);  
  29. LinearLayout layout = new LinearLayout(this);  
  30. layout.setOrientation(LinearLayout.VERTICAL);  
  31. layout.addView(btn);  
  32. layout.addView(btn2);  
  33. this.setContentView(layout);   
  34. }  

 

Android Button操作步骤是:

一,生成两个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 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...