android Button 点击事件
来源:互联网 发布:银行软件外包管理办法 编辑:程序博客网 时间:2024/04/30 06:56
按钮在xml中的定义
<?xml version="1.0" encoding="utf-8"?><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"> <Button android:id="@+id/text_click_action1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮1"/> <Button android:id="@+id/text_click_action2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮2"/></LinearLayout>
1.匿名内部类:这种实现点击事件方式是初学者常用的点击方式,这种方式比较简单易懂,在界面中只有一两个按钮时,可以选用这种方式,但是当界面中有n多个按钮都要有点击事件实现时,这种方式会让代码看起来比较乱,而且不方便统一管理点击事件。
public class MainActivity extends AppCompatActivity { public static final String TAG = "MainActivity"; private Button btnTextClickAction1; private Button btnTextClickAction2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnTextClickAction1 = (Button)findViewById(R.id.text_click_action1); btnTextClickAction1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d(TAG, "匿名内部类点击事件1"); } }); btnTextClickAction2 = (Button)findViewById(R.id.text_click_action2); btnTextClickAction2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d(TAG,"匿名内部类点击事件2"); } }); }}
2.用Activity实现OnClickListener接口:这种实现点击事件方式是让Activity实现OnClickListener接口并重写onClick方法,通过判断按钮ID的方式来确定是哪个按钮的点击事件,这种点击事件的实现适合用于多个控件实现点击事件监听。方便点击事件的统一管理。
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ public static final String TAG = "MainActivity"; private Button btnTextClickAction1; private Button btnTextClickAction2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnTextClickAction1 = (Button)findViewById(R.id.text_click_action1); btnTextClickAction1.setOnClickListener(this); btnTextClickAction2 = (Button)findViewById(R.id.text_click_action2); btnTextClickAction2.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.text_click_action1: Log.d(TAG, "实现OnClickListener接口点击事件1"); break; case R.id.text_click_action2: Log.d(TAG, "实现OnClickListener接口点击事件2"); break; } }}
3.自定义单击事件监听类:这种实现点击事件方式是自己创建类实现OnClickListener接口,然后重写onClick方法。这种实现方式和第一种实现方式几乎相同,只不过是给这个listener起了个名字,这种方法一般适合多个不同的按钮,实现一样的点击事件。
public class MainActivity extends AppCompatActivity { public static final String TAG = "MainActivity"; private Button btnTextClickAction1; private Button btnTextClickAction2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnTextClickAction1 = (Button) findViewById(R.id.text_click_action1); btnTextClickAction1.setOnClickListener(new ClickActionListener()); btnTextClickAction2 = (Button) findViewById(R.id.text_click_action2); btnTextClickAction2.setOnClickListener(new ClickActionListener()); } private class ClickActionListener implements View.OnClickListener { @Override public void onClick(View view) { Log.d(TAG,"自定义实现类实现点击事件"); } }}
4.指定Button的onClick的属性:这种实现点击事件方式是在XML文件中显示指定按钮的onClick属性,这样点击按钮时会利用反射的方式调用对应Activity中的click()方法,这种方式实现起来方便而且代码简洁,但因为代码通用性可读性较差。通常不建议使用。
<?xml version="1.0" encoding="utf-8"?><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"> <Button android:id="@+id/text_click_action1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="Click" android:text="按钮1"/> <Button android:id="@+id/text_click_action2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="Click" android:text="按钮2"/></LinearLayout>
public class MainActivity extends AppCompatActivity { public static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void Click(View view){ switch (view.getId()){ case R.id.text_click_action1: Log.d(TAG,"自定义属性实现点击事件1"); break; case R.id.text_click_action2: Log.d(TAG,"自定义属性实现点击事件2"); break; } }}
阅读全文
0 0
- android点击button事件
- Android-Button-点击事件
- android Button 点击事件
- Android Button的点击事件
- Android Button 点击事件无效
- Android listView 中响应Button点击事件
- Android Button的点击事件【原创】
- Android listView 中响应Button点击事件
- Android listView 中响应Button点击事件
- 3-1android Button点击事件
- Android listView 中响应Button点击事件
- Android下的Button按钮点击事件
- Android Button自动触发点击事件
- [Android][Button]Button注册点击事件的4种方法
- android 防止Button连续点击而响应多次点击事件
- android 防止Button的频繁点击,多次执行点击事件
- Button的点击事件
- Button的点击事件
- Win7系统开机屏幕出现无信号输入 电脑开机屏幕显示没有信号
- 怎么选择设计模式
- DataBinding祛除findviewbyid和数据绑定【一】
- 贪吃蛇初探
- c++ static的作用,以及static对象在类和函数中区别
- android Button 点击事件
- spring boot 笔记(三):配置redis
- Event事件之剪贴板和拖动事件
- 【html基础】p标签里面不能嵌套块级元素
- python-从哪里开始执行?
- BitmapFactory 使用小记
- 锁,同步,可重入锁,读写锁
- HDU3695 Computer Virus on Planet Pandora 解题报告【字符串】【AC自动机】
- Win8操作中心的小白旗出现红叉怎么办 Win8系统任务栏小白旗显示打红叉