Android 点击事件常用写法

来源:互联网 发布:JAVA string类型去空格 编辑:程序博客网 时间:2024/06/06 14:09

第一种方法 最简单的
在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";@Overrideprotected 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 后出来的

原创粉丝点击