您的位置:首页 > 其它

View的点击事件

2016-04-17 20:52 405 查看
    Android中,View点击事件有4种,一种为布局文件中设置来指定点击方法名,其他三种都是用于设置View的点击事件,都用到了OnClickListener接口,形式不同。

    OnClickListener是监听View的接口。该接口定义了控件被点击时的回调方法onClick()。View需要在setOnClickListerer(OnClickListener listener)方法的参数中传入接听的View事件。

    如果为按钮设置点击事件要导入android.vew.View包 (2,3,4)

    1.在布局文件中为按钮设置onClick属性指定点击方法名

<span style="font-size:12px;"><Button
android:layout_width="wrap_content"
adnroid:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
adntoid:onClick="click"
android:text="开启界面"/></span>

    2.创建内部类来设置

    创建一个内部类实现OnClickListener接口,并重写onClick()方法,在该方法中写入点击事件的逻辑。
    内部类写完后要为按钮设置setOnClickListener(Listener listener)属性,在参数中传入之前创建好内部类对象即可。

    注意,为按钮设置点击事件之前需要先获取该控件的引用,通过在XML文件中设置id属性即可,然后在代码中用findViewById(R.id)方法来得到该控件的View对象,然后强制转换类型得到该控件。
<Button
android:id="@+id/button1"
……
/>
  得到控件引用后,创建内部类来实现OnClickListener接口(适用于按钮较多)
protected void onCreate(Bundle savedInstanecState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//设置属性
Button button1=(Button) findViewById(R.id.button1);//得到该控件的对象
Button button2=(Button) findViewById(R.id.button2);
}
private classMyButton implements OnClickListener
{
public void onClick(View v)
{
switch(v.getId()) {
case R.id.button:
Log.i("定义属性响应按钮点击事件");
break;

case R.id.button1;
Log.i("定义属性响应按钮点击事件");
break;
}
}
}

    3.在主类中实现OnClickListener接口

可以在主类中实现该接口,然后再重写onClick()方法,然后通过switch来判断哪个按钮被点击
 
public class MainaActivity extends Activity implements OnClickListener
{

protected void onCreate(Bundle savedInstanecState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//设置属性
Button button1=(Button) findViewById(R.id.button1);//得到该控件的对象
Button button2=(Button) findViewById(R.id.button2);

button1.setOnClickListener(this);//按钮绑定接口
button2.setOnClickListener(this);

}
}

private classMyButton implements OnClickListener
{
public void onClick(View v)
{
switch(v.getId()) {
case R.id.button:
Log.i("定义属性响应按钮点击事件");
break;

case R.id.button1;
Log.i("定义属性响应按钮点击事件");
break;
}
}
}
   this代表该Activity的引用,因为Activity实现了OnClickListener接口,所以这个this代表了OnClickListener的引用。

4.匿名内部类

    当按钮较少时,不需要单独创建一个类来实现OnClickListener接口,直接创建OnClickListener的匿名内部类,传入按钮的setOnClickListener()参数中即可。
Button button1=(Button) findViewById(R.id.button1);
button1.setOnClickListener(new onClickListener()
{
public void onClick(View v)
{
Log.i("定义属性响应按钮点击事件");
}

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