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

  • Android进度条相关应用技巧解析
  • Android键盘操作相关技巧分享
  • Android模拟器具体作用浅谈
  • Android列表框应用技巧讲解
  • Android构造块类别总结

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

一,Android Button布局管理(Layout)

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

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

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

        
  1. publicclassHelloActivityextendsActivity{
  2. /**Calledwhentheactivityisfirstcreated.*/
  3. @Override
  4. publicvoidonCreate(BundlesavedInstanceState){
  5. super.onCreate(savedInstanceState);
  6. TextView tv = new TextView(this);
  7. tv.setText("Hello,World!");
  8. this.setContentView(tv);
  9. }
  10. }

这里并没有用到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. importandroid.app.Activity;
  2. importandroid.os.Bundle;
  3. importandroid.view.View;
  4. importandroid.view.View.OnClickListener;
  5. importandroid.widget.Button;
  6. importandroid.widget.LinearLayout;
  7. publicclassHelloActivityextendsActivityimplementsOnClickListener{
  8. Button btn = null ;
  9. Button btn2 = null ;
  10. publicvoidonClick(Viewv){
  11. if( v ==btn)
  12. {
  13. this.setTitle("YouClickedButton1");
  14. }
  15. if( v ==btn2)
  16. {
  17. this.setTitle("YouClickedButton2");
  18. }
  19. }
  20. @Override
  21. publicvoidonCreate(BundlesavedInstanceState){
  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. }
  35. }

Android Button操作步骤是:

一,生成两个Button,配置Click事件监听者为HelloActivity ,此类实现了OnClickListener接口。

二,放入布局,按布局显示两个Button

三,按下其中一个Button,生成Click事件,调用HelloActivity 的OnClick接口函数。

四,对于View参数的值,判断是哪个View(Button)。改写Activity的Titile内容。注意,可别去对比View.getId(),缺省情况下,每个组件的Id值都为-1,除非人为设定Id值,用可视化编程时,为自动为其生成一个Id值。

http://developer.51cto.com/art/201001/180421.htm

更多相关文章

  1. Android的6种布局管理器总结
  2. RelativeLayout_相对布局 属性的描述
  3. Android彻底组件化—代码和资源隔离
  4. 相对布局各种属性说明
  5. 【Android布局】在程序中设置android:gravity 和 android:layout
  6. android 自定义组件 :对VelocityTracker的研究
  7. Android界面开发简介
  8. 关于FrameLayout布局的位置问题

随机推荐

  1. 如何给你的Android 安装文件(APK)瘦身
  2. Android(安卓)给 app默认权限(不弹窗申请
  3. Android 动态logo bootanimation.zip 制
  4. 【EditText】Android设置EditText不可编
  5. View动画
  6. Android(安卓)一个简单的自定义WheelView
  7. Android 圆角图片,基于Glide4.9 的 Bitmap
  8. android app 启动会白屏的解决办法
  9. 【Android】TextView常用属性
  10. Android之TableLayout布局