你的位置:首页 > 操作系统

[操作系统]android中点击事件的4种写法


android中获取到一些控件(比如说按钮)时,一般会为其添加点击事件,android中的点击事件一共有4中写法。

假设在布局文件中声明如下

    .......<Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/bt_1"/>.......

一、通过匿名内部类

    主要的java代码如下,首先获取到该Button控件。

private Button bt_1;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    bt_1 = (Button) findViewById(R.id.bt_1);    bt_1.setOnClickListener(new OnClickListener() {      @Override      public void onClick(View v) {        //点击后触发执行的代码      }

二、通过内部类

    首先获取到该控件,再创建一个内部类,该内部类实现OnClickListener接口。

private Button bt_1;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    bt_1=(Button) findViewById(R.id.bt_1);    bt_1.setOnClickListener(new MyListener());  }  class MyListener implements OnClickListener{    @Override    public void onClick(View v) {      // 点击Button后触发执行的代码    }      }

三、在布局文件中添加onClick属性

    更改布局文件中 Button的属性

<Button  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:id="@+id/bt_1"  android:onClick="click"  />

添加点击事件时,直接声明一个方法,不必获取到控件

//  private Button bt_1;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);//    bt_1 = (Button) findViewById(R.id.bt_1);  }  public void click(View view){    //点击Button后触发执行的代码      }

四、通过实现接口

    使用此方法时,主方法要实现OnClickListener 接口,并且覆写接口中定义的onClick方法

public class MainActivity extends Activity implements OnClickListener {    private Button bt_1;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    bt_1 = (Button) findViewById(R.id.bt_1);    //此处传入this即可    bt_1.setOnClickListener(this);  }  @Override  public void onClick(View v) {    // 点击Button后执行的代码      }}