android事件监听的4种方式

Button的点击状态事件有三种:(1)单击事件;(2)长按事件;(3)触摸事件。

以单击事件为例,用户可以通过4种方式为按钮添加单击事件监听器,实现相应的事件响应和处理:


(1)内部类形式:将事件监听器类定义在当前类的内部。

比如,匿名内部类形式:使用匿名内部类创建事件监听器对象。

        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                textView1.setText("第一种单击事件监听的方法");
            }
        });

(2).通过xml定义onClick属性,java代码中编写的方法名就是属性中对应的值,如果没有在java中写方法名,xml会报错。


    
  public void btn2Click(View view){
        textView1.setText("第二种监听事件方法");
    }

3.需要先定义,后设置。

       //设置监听器
       //先定义,后使用

         View.OnClickListener myListener=new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                textView1.setText("第三种事件监听方法");
            }
        };
        button3.setOnClickListener(myListener);


最后代码:

package com.example.full;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
     TextView textView1;
    Button button1,button2,button3;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        textView1 = findViewById(R.id.textView);
        button1 = findViewById(R.id.button1);
        button2 = findViewById(R.id.button2);
        button3 = findViewById(R.id.button3);

        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                textView1.setText("第一种单击事件监听的方法");
            }
        });




        //设置监听器
       //先定义,后使用

         View.OnClickListener myListener=new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                textView1.setText("第三种事件监听方法");
            }
        };
        button3.setOnClickListener(myListener);


    }
    //在xml中定义onClick属性。属性中对应的值需要在java代码中编写对应的方法名
    public void btn2Click(View view){
        textView1.setText("第二种监听事件方法");
    }



}

(4)创建一个继承自View.OnClickListener的Activity,由此Activity实现OnClick(View view)方法,在此方法中利用switch-case根据Button控件的id进行单击事件的对象监听识别。这种方法适合按钮数量较多的单击事件处理。Activity本身作为事件监听器类:让Activity本身实现监听器接口,并实现事件处理方法。

类实现接口:

package com.example.full;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.util.Log;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class ButtonTest extends AppCompatActivity implements View.OnClickListener{
     Button button1,button2,button3;
     TextView textView1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button1 = findViewById(R.id.button1);
        button2 = findViewById(R.id.button2);
        button3 = findViewById(R.id.button3);
        textView1=findViewById(R.id.textView);
        button1.setOnClickListener(this);
        button2.setOnClickListener(this);
        button3.setOnClickListener(this);


    }

    @Override
    public void onClick(View view) {
        switch (view.getId())
        {
            case R.id.button1:
              // textView1.setText("按键1被点击");
              //  Log.i("TAG","你点击了button1按钮");
                button1.setText("button1被点击");
               break;

            case R.id.button2:
               // Log.i("TAG","你点击了button2按钮");
                button2.setText("button2被点击");
                break;

            case R.id.button3:
                //Log.i("TAG","你点击了button3按钮");
                button3.setText("button3被点击");
                break;

        }

    }
}

android事件监听的4种方式_第1张图片

 

你可能感兴趣的:(安卓开发,android,前端,android,studio)