您的位置:首页 > 移动开发 > Android开发

android监听机制

2016-03-03 20:54 281 查看

android监听有4种实现方法,匿名内部类实现,内部类实现,实现事件接口,覆写方法实现,控件onClick属性实现事件,下面我将一一举例。

首先匿名内部类:

import android.os.Bundle;

import android.support.v7.app.ActionBarActivity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

public class MainActivity extends ActionBarActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//获取控件

Button butt = (Button)findViewById(R.id.butt);

//匿名内部类实现监听

butt.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Toast.makeText(MainActivity.this, "匿名内部类实现", Toast.LENGTH_SHORT).show();

}

});

}

}

内部类实现方法

import android.app.Activity;

import android.os.Bundle;

import android.support.v7.app.ActionBarActivity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

public class Main2 extends Activity {

private Button butt;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//获取控件

butt = (Button)findViewById(R.id.butt);
//内部类实现监听

butt.setOnClickListener(OnMyClick);

}

OnClickListener OnMyClick = new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Toast.makeText(Main2.this, "内部类实现", Toast.LENGTH_SHORT).show();

}

};

}



实现接口,覆写方法

import android.os.Bundle;

import android.support.v7.app.ActionBarActivity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

public class Main3 extends ActionBarActivity implements View.OnClickListener{

private Button butt;

private Button butt2;

private Button butt3;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//获取控件

butt = (Button)findViewById(R.id.butt);

butt.setOnClickListener((OnClickListener) this);

butt2 = (Button)findViewById(R.id.butt2);

butt2.setOnClickListener((OnClickListener) this);

butt3 = (Button)findViewById(R.id.butt3);

butt3.setOnClickListener((OnClickListener) this);

}

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

switch(v.getId()){

case R.id.butt:

Toast.makeText(Main3.this, "这是实现事件接口,覆写方法实现", Toast.LENGTH_SHORT).show();

break;

case R.id.butt2:

Toast.makeText(Main3.this, "这是实现事件接口,覆写方法实现", Toast.LENGTH_SHORT).show();

break;

case R.id.butt3:

Toast.makeText(Main3.this,
"这是实现事件接口,覆写方法实现", Toast.LENGTH_SHORT).show();

break;

}

}

}

控件onClick属性实现事件

<Button

android:id="@+id/butt4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:onClick="clickMe"

android:textSize="30dp"

android:text="点我3" />


代码
import android.os.Bundle;

import android.support.v7.app.ActionBarActivity;

import android.widget.Toast;

public class main4 extends ActionBarActivity{

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

public void clickMe(){

Toast.makeText(main4.this, ".控件onClick属性实现事件", Toast.LENGTH_SHORT).show();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: