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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章