zoukankan      html  css  js  c++  java
  • 简易的按钮事件

    Button事件处理

    范例说明

    按钮在许多Windows窗口应用程序中,是最常见到的控件(Controls),此控件也常在网页设计里出现,诸如网页注册窗体、应用程序里的"确定"等等。

    而按钮所触发的事件处理,我们称为Event Handler,只不过在Android当中,按钮事件是由系统的Button.OnClickListener所控制,熟悉Java程序设计的读者对OnXxxListener应该不陌生。以下的范例将示范如何在Activity里布局一个按钮(Button),并设计这个按钮的事件处理函数,当点击按钮的同时,更改TextView里的文字。

    运行结果

     
    (点击查看大图)图3-7  Android手机的实际画面运行结果
    范例程序
    1. src/irdc.ex03_07/Ex03_07.java

    一开始,必须先在Layout当中布局一个Button及一个TextView对象,找不到这两个组件的话,系统会无法运行下去,在开发阶段会造成编译错误。

    其次在主程序中,请留意onCreate里创建的Button.OnClickListener事件,这也是触发按钮时会运行的程序段落;但由于Eclipse无法自动加载默认的传递参数(new Button.OnClickListener()),所以,在编写程序描述时,必须自行键入新创建的按钮所需的OnClickListener() 事件,如下所示:

    1. package irdc.ex03_07;  
    2.  
    3. import android.app.Activity;  
    4. import android.os.Bundle;  
    5. import android.view.View;  
    6. import android.widget.Button;  
    7. import android.widget.TextView;  
    8.  
    9. public class EX03_07 extends Activity  
    10. {  
    11.   private Button mButton1;  
    12.   private TextView mTextView1;  
    13.     
    14.   /** Called when the activity is first created. */ 
    15.   @Override 
    16.   public void onCreate(Bundle savedInstanceState)  
    17.   {  
    18.     super.onCreate(savedInstanceState);  
    19.     setContentView(R.layout.main);  
    20.       
    21.     mButton1 =(Button) findViewById(R.id.myButton1);  
    22.     mTextView1 = (TextView) findViewById(R.id.myTextView1);  
    23.       
    24.     mButton1.setOnClickListener(new Button.OnClickListener()  
    25.     {  
    26.       @Override 
    27.       public void onClick(View v)  
    28.       {  
    29.         // TODO Auto-generated method stub  
    30.         mTextView1.setText("Hi, Everyone!!");  
    31.       }  
    32.     });  
    33.   }  

    扩展学习

    本范例中只有一个按钮,但在Activity里,其实可以布局数个按钮,只需要在Layout里多配置一个按钮对象,以下的程序将创建两个按钮事件作为示范:

    1. package irdc.ex03_07;  
    2.  
    3. import android.app.Activity;  
    4. import android.os.Bundle;  
    5. import android.view.View;  
    6. import android.widget.Button;  
    7. import android.widget.TextView;  
    8.  
    9. public class EX03_07 extends Activity  
    10. {  
    11.   private Button mButton1;  
    12.   private Button mButton2;  
    13.   private TextView mTextView1;  
    14.     
    15.   /** Called when the activity is first created. */ 
    16.   @Override 
    17.   public void onCreate(Bundle savedInstanceState)  
    18.   {  
    19.     super.onCreate(savedInstanceState);  
    20.     setContentView(R.layout.main);  
    21.       
    22.     mButton1 =(Button) findViewById(R.id.myButton1);  
    23.     mButton2 =(Button) findViewById(R.id.myButton2);  
    24.     mTextView1 = (TextView) findViewById(R.id.myTextView1);  
    25.       
    26.     mButton1.setOnClickListener(new Button.OnClickListener()  
    27.     {  
    28.       @Override 
    29.       public void onClick(View v)  
    30.       {  
    31.         // TODO Auto-generated method stub  
    32.         mTextView1.setText("Hi, Everyone!!");  
    33.       }  
    34.     });  
    35.       
    36.     mButton2.setOnClickListener(new Button.OnClickListener()  
    37.     {  
    38.       @Override 
    39.       public void onClick(View v)  
    40.       {  
    41.         // TODO Auto-generated method stub  
    42.         mTextView1.setText("Hi, David!!");  
    43.       }  
    44.     });  
    45.   }  

    最后来谈谈按钮事件里被重写的onClick(View v) 函数,此函数唯一的参数是View类型的变量v,这个变量所指的是来自父层(parent)的ContentView,亦即通过"v.*"可以更改其父层的View状态或属性。

  • 相关阅读:
    POJ 1330 Nearest Common Ancestors (LCA,dfs+ST在线算法)
    BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊 (动态树LCT)
    HDU 4010 Query on The Trees (动态树)
    SPOJ 375. Query on a tree (动态树)
    BZOJ 2049: [Sdoi2008]Cave 洞穴勘测 (动态树入门)
    HDU 3726 Graph and Queries (离线处理+splay tree)
    POJ 3580 SuperMemo (splay tree)
    Android中visibility属性VISIBLE、INVISIBLE、GONE的区别
    mysql如何在一张表中插入一万条数据?(用存储过程解决)
    Gradle Build速度加快方法汇总
  • 原文地址:https://www.cnblogs.com/tt_mc/p/1793232.html
Copyright © 2011-2022 走看看