Android 按钮响应事件的几种方式

目录

1.在布局中指定onClick属性

2.使用匿名内部类

3.在当前Activity中实现OnClickListener接口

4.创建内部类


1.在布局中指定onClick属性

布局代码

 

 逻辑代码

    public void click(View v){
        if(v.getId()==R.id.btn1)
            Toast.makeText(this,"button1 is clicked",Toast.LENGTH_SHORT).show();
        if(v.getId()==R.id.btn2)
            Toast.makeText(this,"button2 is clicked",Toast.LENGTH_SHORT).show();
    }

2.使用匿名内部类

public class MainActivity extends AppCompatActivity {

    private Button btn1;
    private Button btn2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.buttonclick);
        //通过findViewById()初始化控件
        btn1=(Button) findViewById(R.id.btn1);
        btn2=(Button) findViewById(R.id.btn2);
       //匿名内部类
        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                btn1.setText("button1 is clicked");
            }
        });
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                btn2.setText("button2 is clicked");
            }
        });
    }
}

3.在当前Activity中实现OnClickListener接口

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private Button btn1;
    private Button btn2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.buttonclick);
        //通过findViewById()初始化控件
        btn1=(Button) findViewById(R.id.btn1);
        btn2=(Button) findViewById(R.id.btn2);
        btn1.setOnClickListener(this);
        btn2.setOnClickListener(this);
    }
    public void onClick(View v){
        if(v.getId()==R.id.btn1){
            Toast.makeText(this,"button1 is clicked",Toast.LENGTH_SHORT).show();
        }
        if(v.getId()==R.id.btn2){
            Toast.makeText(this,"button2 is clicked",Toast.LENGTH_SHORT).show();
        }
    }
}

4.创建内部类

public class MainActivity extends AppCompatActivity {

    private Button btn1;
    private Button btn2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.buttonclick);
        //通过findViewById()初始化控件
        btn1=(Button) findViewById(R.id.btn1);
        btn2=(Button) findViewById(R.id.btn2);
      //传入实现了OnClickListener接口的类的对象
        btn1.setOnClickListener(new MyClickListener());
        btn2.setOnClickListener(new MyClickListener());
    }
    //创建内部类实现OnClickListener接口
    private class MyClickListener implements View.OnClickListener{
        @Override
        public void onClick(View v){
            if(v.getId()==R.id.btn1)
                btn1.setText("button1 is clicked");
            if(v.getId()==R.id.btn2)
                btn2.setText("button2 is clicked");
        }
    }
}

 

你可能感兴趣的:(Android 按钮响应事件的几种方式)