按钮的点击事件之直接实现OnclickListen类来点击

来源:互联网 发布:mac windows 硬盘格式 编辑:程序博客网 时间:2024/05/21 00:19

一,第四种按钮的点击实现方式

package com.example.myapplication;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;public class MainActivity extends AppCompatActivity implements View.OnClickListener{    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button one = (Button) findViewById(R.id.bttton_one);//        设置点击事件,这里的参数要接收一个OnClickListen类型的参数,所以将MainActivity传入即可。        one.setOnClickListener(this);    }    @Override//    重写父类的抽象方法,这里的方法,不能写成私有的,因为在底层源码使用的是反射,没有反射私有方法。    public void onClick(View view) {        Log.v("MainActivity","按钮的第三种点击方法");    }}

以上即为第四种按钮的点击实现方式。
总结起来就是继承OnclickListen类,然后设置事件的点击事件,重写onclick方法,在oncllick方法里面写逻辑。
二,涉及到的几个零碎的知识点。
1.这里面涉及到了Log类的使用。
Log类中有几个方法,Log.i();Log.v();Log.e();Log.w();Log.b();

package com.example.myapplication;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    public void click(View view){//        Log类是让我们打印日志的工具类,Log类的这些方法里有两个参数,参数一:String Tag表示消息的唯一标示// ,这里的标识即指消息是由谁打印的,这里的例子中是由"MainActivity"打印的,所以参数一写成"MainActivity"// ,因为是字符串类型。所以类名要加上"";// 参数二:String msg,要发送的消息。  //      Log.w();代表warning级别,警告。  //      Log.e();代表exception基本,异常    //    Log.d();代表debug级别。    //    Log.v();代表Verbose级别。    //    Log.i();代表Info级别。        Log.w("MainActivity","Exception");        Log.e("MainActivity","warning");        Log.d("MainActivity","Debug");        Log.v("MainActivity","Info");        Log.i("MainActivity","Verbose");    }}

打印结果如下:
08-20 06:54:52.079 3632-3632/com.example.myapplication E/MainActivity: Exception
08-20 06:54:52.079 3632-3632/com.example.myapplication W/MainActivity: warning
08-20 06:54:52.079 3632-3632/com.example.myapplication D/MainActivity: Debug
08-20 06:54:52.079 3632-3632/com.example.myapplication I/MainActivity: Info
08-20 06:54:52.080 3632-3632/com.example.myapplication V/MainActivity: Verbose

Log类中的参数一还有一种写法:

package com.example.myapplication;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;public class MainActivity extends AppCompatActivity {//    这里讲MainActivity封装成一个String类型的值,和参数一直接写类名是一样的效果。    private String mainActivity = "MainActivity";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    public void click(View view){//        Log类是让我们打印日志的工具类,Log类的这些方法里有两个参数,参数一:String Tag表示消息的唯一标示// ,这里的标识即指消息是由谁打印的,这里的例子中是由"MainActivity"打印的,所以参数一写成"MainActivity"// ,因为是字符串类型。所以类名要加上"";// 参数二:String msg,要发送的消息。  //      Log.w();代表warning级别,警告。  //      Log.e();代表exception基本,异常    //    Log.d();代表debug级别。    //    Log.v();代表Verbose级别。    //    Log.i();代表Info级别。        Log.v(mainActivity,"Verbose");    }}