伊人博客 一款有技术又有生活的博客

Android控件onClick事件三种实现方式

发布时间:2017-04-12 12:39:54 标签:android | 阅读(1469)

Android控件onClick事件可以用如下三种方式来实现

1. 实现onClick方法

在layout的xml中指定onClick方法, Activity中实现该方法.  通常用于Button.

File:  res/layout/activity_main.xml
<Button android:id="@+id/mybutton"
    android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:onClick="BtnClick" />
File: java/com/xxx/proj/MainActivity.java
  public void BtnClick(View view) {
    Intent intent = new Intent(MainActivity.this,
                           Main2Activity.class);
    intent.putExtra("EXTRA_DATA", "New Activy");
    startActivity(intent);
  }

2. onCreate中为控件绑定方法

如果layout的xml中同时指定了onClick方法, 则优先执行xml中的方法

File: java/com/xxx/proj/MainActivity.java
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      Button button = (Button)findViewById(R.id.mybutton);
      button.setText(R.string.button_text);
      button.setOnClickListener(this);
      button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          Intent intent = new Intent(MainActivity.this,
                         Main2Activity.class);
          intent.putExtra("EXTRA_DATA", "New Activity");
          startActivity(intent);
        }
      });
    }

3. 实现OnClickListener接口

该方法覆写OnClickListener中的onClick方法, 对不同的控件来响应各自的事件, 优点是能解决activity中所有的onclick问题

File: java/com/xxx/proj/MainActivity.java
  public class MainActivity extends AppCompatActivity
                implements View.OnClickListener {
    private Button button = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      button = (Button)findViewById(R.id.mybutton);
      button.setText(R.string.button_text);
      button.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
      if (v == button) {
        Intent intent = new Intent(MainActivity.this,
                        Main2Activity.class);
        intent.putExtra("EXTRA_DATA", "New Activity");
        startActivity(intent);
      }
    }
  }

参考博客:

<button的OnClickListener的三种实现方法>

<Android的按钮单击事件及监听器的实现方式>


原创文章如转载,请注明出处“伊人博客

站内搜索
关注公众号(随时搜索)
文章归档
热门推荐
随机推荐
冷门晾晒