您的位置:首页 > 其它

基于监听的事件处理——直接绑定到标签

2013-11-04 21:28 579 查看
Android还有一种更简洁的绑定事件监听器的方式,直接在界面布局文件中为指定标签绑定事件处理方法。

对于很多Android界面组件标签而言,它们都支持onClick属性的属性值就是一个形如xxx(View source)的方法的方法名。

例如下面界面界面布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
>

<EditText
android:id="@+id/show"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:editable="false"
>
</EditText>

<Button
android:id="@+id/bn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="clickHandler"
android:text="点击我" />

</LinearLayout>


上面的程序中粗体字代码用于在界面布局文件中为Button按钮绑定一个事件处理方法:clickHandler,这就意味着开发者需要在该界面布局对应的Activity中定义一个void clickHandler(View source)方法,该方法将会负责处理该按钮上的单击事件。下面是该界面布局文件的Java代码。

package com.example.studyevent;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;

public class BindingTag extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_binding_tag);
}
//定义一个事件处理方法
//其中source参数代表事件源
public void clickHandler(View source)
{
EditText show=(EditText)findViewById(R.id.show);
show.setText("bn按钮被点击了");

}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.binding_tag, menu);
return true;
}

}


上面的粗体字代码定义了一个clickHandler(View source)方法,当程序中的bn按钮被单击时,该方法将会被激发并处理bn按钮上的单击事件。

运行上面的程序将会看到如下效果:

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