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