Android 按钮响应事件的几种方式
目录
3.在当前Activity中实现OnClickListener接口
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");
        }
    }
}
    不会的东西只有怀着一颗狂妄的心,假装能把它看穿吧。

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号