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状态或属性。

  • 相关阅读:
    用Docker执行Percona Server
    Java基础 笔记(七)
    VC与JavaScript交互(三) ———— JS调用C++
    4456: [Zjoi2016]旅行者|分治+最短路
    Swift语法学习之 方法
    JavaScript学习笔记二
    Latex 制作积分规则表格
    向MapReduce转换:计算共现关系
    王立平--switch case
    组队训练1 回放
  • 原文地址:https://www.cnblogs.com/tt_mc/p/1793232.html
Copyright © 2011-2022 走看看