Android按钮获取点击事件

时间: 2014-12-29 10:58 栏目: Android 浏览: 18184 赞: 4 踩: 0 字体:

以下为本篇文章全部内容:

熟悉js的朋友都知道在js里面获取事件是一个很常用的功能,在安卓里面同样也是一样的,今天给大家带来的文章就是通过按钮来获取点击事件,文章将给大家介绍获取点击事件的三种方法

方法一:通过匿名内部类获取点击事件


方法二:通过独立类获取点击事件

方法三:通过继承点击接口获取点击事件

我先把xml代码和布局代码先放上来

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">sphynx</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
	<string name="button1">匿名内部类</string>
	<string name="button2">独立类</string>
	<string name="button3">接口实现1</string>
	<string name="button4">接口实现2</string>
</resources>

布局的样式:

QQ图片20141229104007.jpg

一般布局文件使用到的字符串都存放在这里,所以我们就把布局文件的字符串放这里了,在布局文件的xml代码中通过android:text="@string/button1"来调用,这样就说明调用匿名内部类的这个字符串,代码中的button1与name的值相等。

activity_main.xml

<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"
    tools:context="com.example.sphynx.MainActivity" >
	<Button 
	    android:id="@+id/button1"
	    android:layout_width="match_parent"
	    android:layout_height="wrap_content"
	    android:text="@string/button1"
	    />
	<Button 
	    android:id="@+id/button2"
	    android:layout_width="match_parent"
	    android:layout_height="wrap_content"
	    android:text="@string/button2"
	    />
	<Button 
	    android:id="@+id/button3"
	    android:layout_width="match_parent"
	    android:layout_height="wrap_content"
	    android:text="@string/button3"
	    />
	<Button 
	    android:id="@+id/button4"
	    android:layout_width="match_parent"
	    android:layout_height="wrap_content"
	    android:text="@string/button4"
	    />
	<TextView 
	    android:id="@+id/textview"
	    android:layout_width="match_parent"
	    android:layout_height="wrap_content"
	    android:textSize="28dp"
	    />
</LinearLayout>

布局文件我就不做过多的解释,需要注意的是android:text="@string/button1"是调用strings.xml里面设置的字符串

java代码

package com.example.sphynx;

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

public class MainActivity extends Activity implements OnClickListener{
	//创建存储获取控件的变量
	private Button button1,button2,button3,button4;
	private TextView textview;

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);//加载XML布局文件,创建视图
		button1 = (Button) findViewById(R.id.button1);//通过id获取按钮1
		button2 = (Button) findViewById(R.id.button2);//通过id获取按钮2
		button3 = (Button) findViewById(R.id.button3);//通过id获取按钮3
		button4 = (Button) findViewById(R.id.button4);//通过id获取按钮4
		textview = (TextView) findViewById(R.id.textview);//通过id获取文本框

		//给第一个按钮使用匿名内部类实现获取点击事件
		button1.setOnClickListener(new OnClickListener() {
			//重载OnClickListener的onClick方法
			public void onClick(View v) {
				//给文本框重新赋值
				textview.setText("匿名内部类");
			}
		});
		
		//使用独立类实现获取点击事件
		OnClickListener listener = new OnClickListener() {
			//重载OnClickListener的onClick方法
			public void onClick(View v) {
				//给文本框重新赋值
				textview.setText("独立类");
			}
		};
		//按钮2调用setOnClickListener方法实现点击事件
		button2.setOnClickListener(listener);
		
		//通过继承接口获取点击事件
		button3.setOnClickListener(this);
		button4.setOnClickListener(this);
	}
	
	//通过继承OnClickListener接口实现获取点击事件
	public void onClick(View v) {
		//这里可以判断点击的是哪个对象,通过v对象的getId()方法获取当前点击对象的id
		switch (v.getId()) {
		case R.id.button3:
			textview.setText("接口实现1");
			break;
		case R.id.button4:
			textview.setText("接口实现2");
			break;
		default:
			break;
		}
	}
}

点击不同按钮的不同效果:

QQ图片20141229104204.jpg

无标题.jpg

QQ图片20141229104218.jpg

QQ图片20141229104232.jpg


我相信我的注释应该大家能看明白吧,对于代码问题大家可以加我QQ或者其他方式联系我,对于本站的文章,绝对原创,哪里不好的地方希望大家多多指出来,共同进步,禁止copy本站文章,请尊重作者用心良苦,同样让大家搜索到更高质量的文章,不要百度千遍一律的垃圾文章,谢谢大家的支持。