第一种方法 最简单的
在XML文件中显示指定按钮的onClick属性,这样点击按钮时会利用反射的方式调用对应Activity中的click()方法
界面
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="sendMessage"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_webView"
android:onClick="gowebView"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_webView"
android:onClick="gowebViewtwo"/>
xml
public void sendMessage(View view) {
// Do something in response to button
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
public void gowebView(View view){
Intent intent = new Intent(this, WebViewTest.class);
startActivity(intent);
}
public void gowebViewtwo(View view) {
Intent intent = new Intent(this, webView2.class);
startActivity(intent);
}
第二种
匿名内部类:
<Button
android:id="@+id/btntwo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_webView"
/>
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt = (Button)findViewById(R.id.btntwo);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//todo
System.out.println("匿名内部类 ");
}
});
}
第三种
Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法,在OnClick(View view)方法中用switch-case对不同id代表的button进行相应的处理
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt = (Button)findViewById(R.id.btntwo);
bt.setOnClickListener(this);
}
public void onClick(View view) {
switch (view.getId()){
case R.id.btntwo:
System.out.println("11");
break;
default:
break;
}
}
}
第四种 外部类
其实跟第二种差不多 就是把内部类写在外面了
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_number = (EditText) MainActivity.this.findViewById(R.id.et_number);
Button bt_dial = (Button) findViewById(R.id.bt_dial);
bt_dial.setOnClickListener(new MyListener());
}
private class MyListener implements View.OnClickListener {
@Override
public void onClick(View view) {
dialPhone();
}
}
推荐用第一种 为什么呢 方便快捷 Android 6.0 后出来的