代码改变世界

Android 基础-1.0 按钮4种点击事件

2019-06-16 17:48 jiangys 阅读(...) 评论(...) 编辑 收藏

第一种 测试使用

直接xml添加,平时在自己的测试demo中使用比较多。

1、直接在xml里给按钮添加点击事件

android:onClick="btn_click"

2、按住option + enter 给btn_click快捷创建activity代码

    public void btn_click(View view) {
        //sout
        System.out.println("哈哈哈,我被点击了");
        Toast.makeText(this, "哈哈哈,我被点击了", Toast.LENGTH_SHORT).show();
    }

第二种 按钮很多

当按钮有很多的时候,可以使用这一种

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

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

        Button btn_click = findViewById(R.id.button);
        btn_click.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        System.out.println("哈哈哈,我被点击了3");
        Toast.makeText(MainActivity.this, "哈哈哈,我被点击了3", Toast.LENGTH_SHORT).show();
    }
}

按钮很多的情况

        btn_call.setOnClickListener(this);
    btn_call2.setOnClickListener(this);
    btn_call3.setOnClickListener(this);
    btn_call4.setOnClickListener(this);



    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.button1: 
  
            callPhone();
            break;

        case R.id.button2: 
            callPhone();
            break;

        case R.id.button3: 
            callPhone();
            break;

        case R.id.button4: 

            System.out.println("哈哈哈");
            break;

        default:
            break;
        }

    }    

第三种 内部类(常用)

定义一个内部类去实现按钮的点击事件

注意:这种方式会覆盖掉第一种

public class MainActivity extends AppCompatActivity {

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

        Button btn_click = findViewById(R.id.button);
        btn_click.setOnClickListener(new  MyClickListener());
    }

    class MyClickListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            System.out.println("哈哈哈,我被点击了2");
            Toast.makeText(MainActivity.this, "哈哈哈,我被点击了2", Toast.LENGTH_SHORT).show();
        }
    }

}

第四种 匿名内部类(常用)

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

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

        Button btn_click = findViewById(R.id.button);
        btn_click.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                System.out.println("哈哈哈,我被点击了4");
                Toast.makeText(MainActivity.this, "哈哈哈,我被点击了4", Toast.LENGTH_SHORT).show();
            }
        });
    }
}