安卓APP——按键响应

目录

一、在xml中设置按键的onClick绑定的函数

1.1、xml文件

1.2、java文件

1.3、完整代码

二、自定义类实现按键监听事件的接OnClickListener

1.1、实现接口类,在类中实现onclicked方法

1.2、绑定 局部变量button和xml中的button,  findViewById

1.3、为前面做的准备进行绑定。使得按键被按下后执行你写的业务代码

1.4、完整java代码

三、匿名内部类实现按键响应

四、MainActivity实现OnClickListener接口


第一种是最容易的,剩下的3种都是围绕OnClickListener接口来实现

一、在xml中设置按键的onClick绑定的函数

1.1、xml文件

使用onClick可以定义一个函数,这个函数在java中实现,按键被点击后会去调用这个函数

android:onClick="bottonBeCliecked"

1.2、java文件

  1. 去实现xml绑定的函数,使用关键字public
    public void bottonBeCliecked(View v){
           	
    }
  2. 可以使用v.getId(返回按下按键的id号)和R.id.but1(返回指定按键的id号,but1),判断是哪个按键按下的,前提是xml里面加了按键id
    android:id="@+id/but1"
        public void bottonBeCliecked(View v){
        	switch(v.getId()){
        		case R.id.but1:
        			System.out.println("按键一被按下");
                    break;
        		case R.id.but2:
        			System.out.println("按键二被按下");
                    break;
        	}
        }
  3. Toast.makeText(context, text, duration)    在安卓APP界面的下方显示
    Toast.makeText 构造方法 ,show()方法
    context:this
    text:显示的东西
    duration:显示的时长,0
    Toast.makeText(this, "按键一被按下", 0).show();

     

1.3、完整代码

xml

<RelativeLayout 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: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=".MainActivity" >

    <Button 
        android:id="@+id/but1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="按键1"
        android:onClick="bottonBeCliecked"
        />
    
    <Button 
        android:id="@+id/but2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="按键2"
		android:onClick="bottonBeCliecked"
        />

</RelativeLayout>

java

package com.example.xw;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void bottonBeCliecked(View v){
    	switch(v.getId()){
    		case R.id.but1:
    			Toast.makeText(this, "按键一被按下", 0).show();
    			System.out.println("按键一被按下");
                break;
    		case R.id.but2:
    			Toast.makeText(this, "按键二被按下", 0).show();
    			System.out.println("按键二被按下");
                break;
    	}
    }
    
}

二、自定义类实现按键监听事件的接OnClickListener

1.1、实现接口类,在类中实现onclicked方法

class MyClieckHandler implements View.OnClickListener{

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch(v.getId()){
			case R.id.but1:
				System.out.println("按键一被按下");
				break;
			case R.id.but2:
				System.out.println("按键二被按下");
				break;
		}
	}	
}

1.2、绑定 局部变量button和xml中的button,  findViewById

	Button btn1;
	Button btn2;

    btn1 = (Button) findViewById(R.id.but1);
    btn2 = (Button) findViewById(R.id.but2);

1.3、为前面做的准备进行绑定。使得按键被按下后执行你写的业务代码

btn1.setOnClickListener(new MyClieckHandler());
btn2.setOnClickListener(new MyClieckHandler());

1.4、完整java代码

package com.example.xw;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

class MyClieckHandler implements View.OnClickListener{

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch(v.getId()){
			case R.id.but1:
				System.out.println("按键一被按下");
				break;
			case R.id.but2:
				System.out.println("按键二被按下");
				break;
		}
	}	
}

public class MainActivity extends Activity {

	Button btn1;
	Button btn2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        btn1 = (Button) findViewById(R.id.but1);
        btn2 = (Button) findViewById(R.id.but2);
        
        btn1.setOnClickListener(new MyClieckHandler());
        btn2.setOnClickListener(new MyClieckHandler());
    }
    
}

三、匿名内部类实现按键响应

和第二种方法一样,只是写成了内部类

  1. 和方法2一样,绑定 局部变量button和xml中的button,  findViewById
  2. 编写内部类
  3. 完整代码
    package com.example.xw;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
    	Button btn1;
    	Button btn2;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            btn1 = (Button) findViewById(R.id.but1);
            btn2 = (Button) findViewById(R.id.but2);
            
            btn1.setOnClickListener(new View.OnClickListener() {
    			
    			@Override
    			public void onClick(View arg0) {
    				// TODO Auto-generated method stub
    				System.out.println("按键一被按下");
    				Toast.makeText(MainActivity.this, "按键一被按下", 0).show();
    			}
    		});
    
            btn2.setOnClickListener(new View.OnClickListener() {
    			
    			@Override
    			public void onClick(View arg0) {
    				// TODO Auto-generated method stub
    				System.out.println("按键二被按下");
    				Toast.makeText(MainActivity.this, "按键二被按下", 0).show();
    			}
    		});
            
        }
        
    }
    

四、MainActivity实现OnClickListener接口

  1. 在MainActivity类中实现接口
  2. 和第2种方法一样,都需要绑定局部变量button和xml中的button,setOnClickListener使得按键被按下后执行你写的业务代码
    Button btn1;
    Button btn2;
    
    btn1 = (Button) findViewById(R.id.but1);
    btn2 = (Button) findViewById(R.id.but2);
    
    btn1.setOnClickListener(this);
    btn2.setOnClickListener(this);
  3. 实现接口里的方法

  4. 完整代码
     

    package com.example.xw;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.Toast;
    
    public class MainActivity extends Activity implements OnClickListener {
    
    	Button btn1;
    	Button btn2;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            btn1 = (Button) findViewById(R.id.but1);
            btn2 = (Button) findViewById(R.id.but2);
            
            btn1.setOnClickListener(this);
            btn2.setOnClickListener(this);
        }
    	@Override
    	public void onClick(View v) {
    		// TODO Auto-generated method stub
    			switch(v.getId()){
    			case R.id.but1:
    				Toast.makeText(this, "按键一被按下", 0).show();
    				System.out.println("按键一被按下");
    		        break;
    			case R.id.but2:
    				Toast.makeText(this, "按键二被按下", 0).show();
    				System.out.println("按键二被按下");
    		        break;
    		}
    	}
        
    }
    

     

 

师承上官可编程 —— 陈立臣

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dz小伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值