以下为本篇文章全部内容:
熟悉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>
布局的样式:
一般布局文件使用到的字符串都存放在这里,所以我们就把布局文件的字符串放这里了,在布局文件的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或者其他方式联系我,对于本站的文章,绝对原创,哪里不好的地方希望大家多多指出来,共同进步,禁止copy本站文章,请尊重作者用心良苦,同样让大家搜索到更高质量的文章,不要百度千遍一律的垃圾文章,谢谢大家的支持。
总赞数量:18274
总踩数量:128087
文章数量:29