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


目录

1.在布局中指定onClick属性

2.使用匿名内部类

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

4.创建内部类


1.在布局中指定onClick属性

布局代码

 <Button
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button1"
        android:onClick="click"
        />

    <Button
        android:id="@+id/btn2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button2"
        android:layout_below="@+id/btn1"
        android:onClick="click"
        />

 逻辑代码

    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");
        }
    }
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM