zoukankan      html  css  js  c++  java
  • Android按钮单击事件的两种常用写法

    这篇文章主要介绍了Android按钮单击事件的两种常用写法总结,有不错的参考借鉴价值,需要的朋友可以参考下

    以下是我定义的一个按钮

    <Button
             android:id="@+id/but"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_alignParentLeft="true"
             android:layout_alignParentTop="true"
             android:text="Button" />

    一:用匿名内部类的方法实现

    MainActivity.java:

    public class MainActivity extends Activity {
        private Button but;//定义变量保存按钮控件
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            but = (Button) findViewById(R.id.but);//通过id获取按钮控件
            but.setText("请点击");//修改按钮上的内容
            but.setOnClickListener(new OnClickListener() {//为按钮绑定单击事件监听器
                //匿名内部类
                public void onClick(View v) {
                    //makeText方法的三个参数(上下文对象,显示的内容,显示的时长).显示
                    Toast.makeText(MainActivity.this,"你好",Toast.LENGTH_LONG).show();
          }
      }); 
    }

    二:定义实现OnClickListener接口的类

    ButOnClickListener.java:

    public class ButOnClickListener implements OnClickListener{
        //实现OnClickListener接口
        private Context context;//定义context变量保存上下文对象
        //定一个构造函数,用作传递上下文对象
        public ButOnClickListener(Context context){
            this.context = context;
        }
        //实现OnClickListener接口未实现的方法
        public void onClick(View v) {
            Toast.makeText(context,"你好",Toast.LENGTH_LONG).show();   
        } 
    }

    MainActivity.java:

    public class MainActivity extends Activity {
        private Button but;//定义变量保存按钮控件
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
             but = (Button) findViewById(R.id.but);//通过id获取按钮控件
            but.setText("请点击");//修改按钮上的内容
            but.setOnClickListener(new ButOnClickListener(this));//将当前的Activity传递过去
     }

    以上两个例子的运行效果

    希望本文所述对大家Android程序开发有所帮助。

  • 相关阅读:
    关于心累的思考
    关于组件化开发的思考
    分页组建感想
    工作日记
    unload没有用
    今天很不开心
    select option
    reduce()用法
    $.each()用法
    MFC创建对话框组件对应变量并进行设置值(VS2010)
  • 原文地址:https://www.cnblogs.com/zhaoyucong/p/6073763.html
Copyright © 2011-2022 走看看