標籤:
法一:匿名內部類
public class MainActivity extends AppCompatActivity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { button = (Button) findViewById(R.id.btn); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "匿名內部類 監聽", Toast.LENGTH_SHORT).show(); } }); }}
法二:內部類
public class MainActivity extends AppCompatActivity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { button = (Button) findViewById(R.id.btn); button.setOnClickListener(new MyClickListener()); } class MyClickListener implements View.OnClickListener { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "內部類 監聽", Toast.LENGTH_SHORT).show(); } }}
法三:Activity 實現 View.OnClickListener 介面
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { button = (Button) findViewById(R.id.btn); button.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn: Toast.makeText(MainActivity.this, "Activity 實現 View.OnClickListener 介面", Toast.LENGTH_SHORT).show(); break; default: break; } }}
法四:xml 檔案中使用 onClick 屬性
在 xml 檔案中顯式指定標籤的 onClick 屬性,在 Activity 中寫一個 onClick 屬性同名方法
activity_main.xml
<Button android:id="@+id/btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="xmlOnClick" android:text="click" />
MainActivity.java
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void xmlOnClick(View view) { switch (view.getId()) { case R.id.btn: Toast.makeText(MainActivity.this, "在 xml 檔案中使用 onClick 屬性", Toast.LENGTH_SHORT).show(); break; default: break; } }}
Android 按鈕點擊事件