1. 程式人生 > >按鈕四種點選事件寫法

按鈕四種點選事件寫法

按鈕四種點選事件寫法

  • [1]通過內部類來實現按鈕點選事件 
  • [2]通過匿名內部類去實現
btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this, "我被點選了", Toast.LENGTH_SHORT).show();

                Intent intent = new
Intent(MainActivity.this, NextActivity.class); startActivity(intent); } });

 

  • [3]當頁面上有多個按鈕 讓當前類實現OnClickListener.通過switch語句 通過id 來判斷具體點選的是哪個按鈕
public class NextActivity extends AppCompatActivity implements View.OnClickListener {
    @Override
    
protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_next); Button btn1 = findViewById(R.id.btn1); Button btn2 = findViewById(R.id.btn2); Button btn3 = findViewById(R.id.btn3); Button btn4
= findViewById(R.id.btn4); btn1.setOnClickListener(this); btn2.setOnClickListener(this); btn3.setOnClickListener(this); btn4.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.btn1: Toast.makeText(this, "1", Toast.LENGTH_SHORT).show(); break; case R.id.btn2: Toast.makeText(this, "2", Toast.LENGTH_SHORT).show(); break; case R.id.btn3: Toast.makeText(this, "3", Toast.LENGTH_SHORT).show(); break; case R.id.btn4: Toast.makeText(this, "4", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(NextActivity.this, ThirdActivity.class); startActivity(intent); break; } } }

 

  • [4]按鈕第四種點選事件寫法 
  • [4.1]在按鈕上宣告一個onClick屬性
 
<Button
        android:id="@+id/btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="Click"
        android:text="天道酬勤" />

 

  • [4.2]在mainActivity寫一個方法 要求方法名和屬性名一樣 並且接收一個引數 引數型別View.
public void Click(View view) {
        Toast.makeText(this, "恐怖牆", Toast.LENGTH_SHORT).show();
    }
 
  • 原理就是我們前面講的反射. 
  • 實際開發中:使用匿名內部類或者第四種寫法