Android按钮实现点击事件的四种方式

    xiaoxiao2021-12-14  22

    一.匿名内部内方式

    此方法整体看上去简单易懂,个人比较常用

    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" tools:context="com.example.button.MainActivity" > <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮" /> </LinearLayout>

    java代码

    public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 找到按钮控件 Button button = (Button) findViewById(R.id.button); // 匿名内部内方式设置点击事件 button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //在屏幕上显示提示 Toast 吐司 Toast.makeText(MainActivity.this, "匿名内部内方式", Toast.LENGTH_SHORT).show(); } }); } }

    在多个控件都需要实现事件监听时,可见将匿名对象抽取出来,避免多次创建对象占用资源

    public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 1.找到按钮控件 Button button = (Button) findViewById(R.id.button); // 3.设置按钮点击事件 button.setOnClickListener(onClickListener); } // 2.得到 OnClickListener 对象 OnClickListener onClickListener = new OnClickListener() { @Override public void onClick(View v) { // 可以使用 switch 通过匹配控件id 设置不同的按钮提示不同内容 // view.getId() 得到点击的控件的id switch (v.getId()) { case R.id.button: Toast.makeText(MainActivity.this, "可以使用设置不同内容", Toast.LENGTH_SHORT).show(); break; case 2: // 省略 break; default: break; } } }; }

    二.实现OnClickListener接口重写onClick方法

    此方法适合用于多个控件实现点击事件监听

    public class MainActivity extends Activity implements OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 1.找到按钮控件 Button button = (Button) findViewById(R.id.button); // 3.按钮设置点击事件 button.setOnClickListener(this); } @Override public void onClick(View v) { // 2.实现OnClickListener接口,然后重写onClick方法 Toast.makeText(MainActivity.this, "实现OnClickListener", Toast.LENGTH_SHORT).show(); } } 此方法也可以自己创建一个类实现 OnClickListener接口

    public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 1.找到按钮控件 Button button = (Button) findViewById(R.id.button); // 3.按钮设置点击事件 button.setOnClickListener(new myOnclickLister()); } // 2.自己创建类实现OnClickListener接口,然后重写onClick方法 class myOnclickLister implements OnClickListener { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "实现OnClickListener", Toast.LENGTH_SHORT).show(); } } }

    三.XML种设置按钮的OnClick属性

    <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" tools:context="com.example.button.MainActivity" > <Button android:onClick="btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮" /> </LinearLayout>

    然后在java代码种建立onClick属性对应名字的方法

    public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //定义与XML种OnClick属性名字对应的方法 注意在方法参数种加上 View v public void btn(View v) { Toast.makeText(MainActivity.this, "设置Onclick属性", Toast.LENGTH_SHORT).show(); } }此方法虽然挺方便,代码简洁,但因为方面命名问题不易让他人读懂,且在多个控件种不方法使用。

    转载请注明原文地址: https://ju.6miu.com/read-964961.html

    最新回复(0)