標籤:ext oncreate out layout 使用 over etc 點擊 監聽
1.Xml添加監聽屬性,這裡添加的doClick。
1 <Button2 android:id="@+id/bt1"3 android:layout_width="wrap_content"4 android:layout_height="wrap_content"5 android:onClick="doClick"6 android:text="XML添加doClick"7 android:layout_above="@+id/bt2"8 android:layout_marginBottom="47dp"9 />
1 public void doClick(View view) {2 switch (view.getId()) {3 case R.id.bt1:4 Toast.makeText(MainActivity.this, "第一種點擊事件:Xml添加doClick", Toast.LENGTH_SHORT).show();5 break;6 7 }8 9 }
在Activity中添加doClick實現方法。Activity中實現的方法要和XML添加的屬性名稱相同,不建議實際開發中使用。
2.匿名內部類方式實現。
1 Button bt2 = (Button) findViewById(R.id.bt2);2 bt2.setOnClickListener(new View.OnClickListener() {3 @Override4 public void onClick(View v) {5 Toast.makeText(MainActivity.this, "第二種點擊事件:匿名內部類", Toast.LENGTH_SHORT).show();6 }7 });
3.自訂點擊事件實現。
1 Button bt3 = (Button) findViewById(R.id.bt3);2 bt3.setOnClickListener(new MyListener());
3 class MyListener implements View.OnClickListener {4 @Override5 public void onClick(View v) {6 Toast.makeText(MainActivity.this, "第三種方法:自訂點擊事件", Toast.LENGTH_SHORT).show();7 }8 }
4.Activity繼承View.OnClickListener,由Activity實現OnClick(View view)方法。
1 public class MainActivity extends AppCompatActivity implements View.OnClickListener { 2 @Override 3 protected void onCreate(Bundle savedInstanceState) { 4 super.onCreate(savedInstanceState); 5 setContentView(R.layout.activity_main); 6 Button bt4=(Button)findViewById(R.id.bt4); 7 bt4.setOnClickListener(this); 8 } 9 10 @Override11 public void onClick(View v) {12 switch (v.getId()) {13 case R.id.bt4:14 Toast.makeText(MainActivity.this,15 "第四種點擊事件:Activity繼承View.OnClickListener,由Activity實現OnClick(View view)方法",16 Toast.LENGTH_SHORT).show();17 }18 }19 }
備忘:Button數量不多的情況下推薦使用第二種,匿名內部類的方式實現;反之則推薦使用第四種,Activity繼承View.OnClickListener實現。
Android中Button四種點擊事件實現方式