Android-响应按钮的点击三种实现方法

文章目录

    • 一、使用反射方式来实现按钮的点击
      • 添加一个onButtonClicked方法
    • 二、给按钮设置监听器
      • 添加一个内部类并且实现其方法
    • 三、给按钮设置监听器(匿名内部类)

一、使用反射方式来实现按钮的点击

  • 添加一个onButtonClicked方法

public void onButtonClicked(View view)
{
    TextView textView = (TextView) findViewById(R.id.id_text_test);
    textView.setText("使用反射的方式来实现按钮的点击");
}    

然后在在Layout中指定onClick属性

注意 public void xxx(View xxx)用黄色标识起来的是必须的,否则机制就会失效

二、给按钮设置监听器

  • 添加一个内部类并且实现其方法

注 View.OnClickListener是一个interface

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

        Button btn = (Button) findViewById(R.id.id_button_2);
        btn.setOnClickListener( new MyButtonListener());
    }

private class MyButtonListener implements View.OnClickListener
{
    @Override
    public void onClick(View view) 
    {
        TextView view = (TextView) findViewById ( R.id.id_text_hello );
        view.setText("使用监听器的方式来实现按钮的单击");
    }
}

注意:

    (1)之所以声明为 private class,因为这个内部仅在内部使用

    (2)在内部类里,可以直接调用外部类的方法: findViewById()

三、给按钮设置监听器(匿名内部类)

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

        Button button = (Button) findViewById(R.id.id_button_1);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v)
            {
                TextView view = (TextView) findViewById ( R.id.id_text_test );
                view.setText("使用匿名内部类来实现按钮的点击");
            }
        });

    }

你可能感兴趣的:(Android)