zoukankan      html  css  js  c++  java
  • 按钮点击的三种方法及推广

    在安卓中按钮点击操作有三种方法,现在记录下来学习:

    第一种:

    //第一种按钮响应方法
            Button btn1 =(Button) findViewById(R.id.btn1);
            
            btn1.setOnClickListener(new OnClickListener(){
                public void onClick(View v){
                    System.out.println("第一个按钮被点击了");
                }
            });

    第二种方法,使用this,此时要在mainactivity 继承implements OnClickListener:

    public class MainActivity extends Activity implements OnClickListener{
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            
            //第二种响应方法(mainActivity 要继承)implements OnClickListener
            Button btn2 =(Button) findViewById(R.id.btn2);
            btn2.setOnClickListener(this);
            
        }
       public void onClick(View v){
           System.out.println("第2个按钮被点击了");
       }
    .....    

    第三种方法:

    此时没有用到资源ID,用到了按钮的OnClick属性,示例:

     <!-- 第三个按钮没有ID -->
    <Button
            android:onClick="clickMe"
            android:layout_width="242dp"
            android:layout_height="64dp"
            android:text="按钮三" />

    在.java中使用:

    //第三种点击同名方法:使用了android:click="clickMe"
       public void clickMe(View v){
           System.out.println("第三个按钮:不要点我了");
       }

    第三种方法推广:

    此时,按钮多个同时出现,点击时都用按钮的OnClick的同一个方法:

    按钮:

    <Button
        android:id="@+id/btn11"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="clickGroup"
        android:text="按钮11" />
    
    <Button
        android:id="@+id/btn12"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="clickGroup"
        android:text="按钮12" />
    
    <Button
        android:id="@+id/btn13"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="clickGroup"
        android:text="按钮13" />

    .java代码:

     //第三种的推广:使用了android:click="clickGroup"
     //View:系统会把触发这个方法的那个组件的对象作为view对象传进来
         public void clickGroup(View v){
             //通过对view对象的判断,就可以知道用户点击的到底是哪一个按钮
             //拿到按钮的id
             int id = v.getId();
             switch (id) {
             case R.id.btn11:
                 System.out.println("按钮11点我了");
                 break;
             case R.id.btn12:
                 System.out.println("按钮12点我了");
                 break;
             case R.id.btn13:
                 System.out.println("按钮13点我了");
                 break;
    
             }
        }

    总代码:

    package com.swust.click;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    
    public class MainActivity extends Activity implements OnClickListener{
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //第一种按钮响应方法
            Button btn1 =(Button) findViewById(R.id.btn1);
            
            btn1.setOnClickListener(new OnClickListener(){
                public void onClick(View v){
                    System.out.println("第一个按钮被点击了");
                }
            });
            
            //第二种响应方法(mainActivity 要继承)implements OnClickListener
            Button btn2 =(Button) findViewById(R.id.btn2);
            btn2.setOnClickListener(this);
            
        }
       public void onClick(View v){
           System.out.println("第2个按钮被点击了");
       }
        
       //第三种点击同名方法:使用了android:click="clickMe"
       public void clickMe(View v){
           System.out.println("第三个按钮:不要点我了");
       }
       
     //第三种的推广:使用了android:click="clickGroup"
     //View:系统会把触发这个方法的那个组件的对象作为view对象传进来
         public void clickGroup(View v){
             //通过对view对象的判断,就可以知道用户点击的到底是哪一个按钮
             //拿到按钮的id
             int id = v.getId();
             switch (id) {
             case R.id.btn11:
                 System.out.println("按钮11点我了");
                 break;
             case R.id.btn12:
                 System.out.println("按钮12点我了");
                 break;
             case R.id.btn13:
                 System.out.println("按钮13点我了");
                 break;
    
             }
        }
    }

    前台使用了线性布局:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.swust.click.MainActivity" >
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_world" />
    
        <Button
            android:id="@+id/btn1"
            android:layout_width="242dp"
            android:layout_height="64dp"
            android:text="按钮一" />
    <Button
            android:id="@+id/btn2"
            android:layout_width="242dp"
            android:layout_height="64dp"
            android:text="按钮二" />
       <!-- 第三个按钮没有ID -->
    <Button
            android:onClick="clickMe"
            android:layout_width="242dp"
            android:layout_height="64dp"
            android:text="按钮三" />
     <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/tishi" />
    
    <Button
        android:id="@+id/btn11"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="clickGroup"
        android:text="按钮11" />
    
    <Button
        android:id="@+id/btn12"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="clickGroup"
        android:text="按钮12" />
    
    <Button
        android:id="@+id/btn13"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="clickGroup"
        android:text="按钮13" />
    
    </LinearLayout>
  • 相关阅读:
    OOP、DI、IOC的情爱恩仇录
    NuGet:添加EntityFramework
    DataGrid之DataGridComboBoxColumn,DataGridCheckBoxColumn,DataGridHyperlinkColumn,DataGridTextColumn
    JohnSon:动态创建模块选项卡
    maf实例
    MVVM理解之逐步重构成为MVVM模式,比MVC的独到之处
    我学Unity系列1:Unity和Mef的比较
    微软一站式代码资料
    匿名方法,泛型委托,Lambda表达式
    关于JS表单验证(转)
  • 原文地址:https://www.cnblogs.com/shuqingstudy/p/4874797.html
Copyright © 2011-2022 走看看