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

[操作系统]监听事件的三种实现方式


1、在activity_main.

<LinearLayout   ="http://schemas.android.com/tools" android:layout_width="match_parent"  android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"  android:paddingRight="@dimen/activity_horizontal_margin"  android:paddingTop="@dimen/activity_vertical_margin"  android:orientation="vertical"  android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">  <Button    android:id="@+id/btn1"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:text="@string/btn"    />  <Button    android:id="@+id/btn2"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:text="@string/btn"    />  <Button    android:id="@+id/btn3"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:text="@string/btn"    /></LinearLayout>

2、

第一种方式:通过内部类实现事件监听
    /*    第一种方式:通过内部类实现事件监听     */    btn1.setOnClickListener(new View.OnClickListener() {      @Override      public void onClick(View v) {        Log.i("tag","第一种方式:通过内部类实现事件监听");        Toast.makeText(MainActivity.this,"第一个按钮被点击",Toast.LENGTH_SHORT).show();      }    });

3、

第二种方式:通过外部类实现事件监听(独立类实现)
    /*    第二种方式:通过外部类实现事件监听(独立类实现)     */    btn2.setOnClickListener(new MyOnClickListener(){      @Override      public void onClick(View v) {        super.onClick(v);        Log.i("tag", "第二种方式:通过内部类实现事件监听");      }    });  class MyOnClickListener implements View.OnClickListener{    @Override    public void onClick(View v) {      Toast.makeText(MainActivity.this,"第二个按钮被点击",Toast.LENGTH_SHORT).show();    }  }

说明:第二种方式:通过外部类实现事件监听(独立类实现),一般有多个组件要实现同一个方法时,才采用这种方法来实现事件监听。

4、

第三种方式:通过OnClickListener接口实现事件监听
public class MainActivity extends Activity implements View.OnClickListener{  private Button btn3; protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);  btn3.setOnClickListener(this);} /*  第三种方式:通过OnClickListener接口实现事件监听   */  @Override  public void onClick(View v) {    Log.i("tag", "第三种方式:通过OnClickListener接口实现事件监听");  }}

说明: btn3.setOnClickListener(this);其中this就是实现OnClickListener下的onClick方法。