Android开发之响应用户界面的事件
来源:互联网 发布:艾默生dcs软件应用 编辑:程序博客网 时间:2024/05/11 23:42
Android平台使用回调机制来处理用户界面事件,每个View都有自己的处理事件的回调方法,如果事件没有被Activity的任何一个View所处理时,Android就会调用Activity的时间处理回调方法进行处理。
注意:如果在一个事件的方法体中,你认为已经完整地处理了这个事件,并不希望其他的回调方法,如Activity的回调方法再次处理,就返回true,否则返回false
有的时候,Android自带的视图组件并不能满足我们的需求,比如我们想要EditText实现这样的功能:它的内容不可以通过键盘输入,而只能通过程序来控制,Android自带的EditText是不具备这样的功能的,只要轻轻点击EditText用户就可以轻易输入内容了。所以我们必须开发自己的视图组件,以实现特定的需求,下面以上面提到的具有特殊功能的EditText为例,简单的讲解一下步骤。
首先,我们必须定义自己的EditText,继承自系统自带的EditText
public classMyEditText extends EditText {
publicMyEditText(Context context, AttributeSet attrs) {
super(context,attrs);
}
@Override
public booleanonTouchEvent(MotionEvent event) {
returntrue;//表示什么也不做
}
}
然后在布局文件中以包名加类名的方式加入自己定义的视图组件
<com.yuchao.myWidget.MyEditText
这样,该EditText在处理用户事件中就会调用我们覆盖EditText中相应的方法了。
其实,Android中还为每一个View提供了一种事件监听的接口,每个接口都需要实现一个回调方法,我们只要实现这些方法,就能对事件进行处理,典型的例子是按钮的onClickListener,不再赘述!
下面代码展示向EditText中添加表情,类似QQ聊天窗口
findViewById(R.id.btn_insert ).setOnClickListener(newOnClickListener() {
try{
Bitmap bitmap =BitmapFactory.decodeResource(getResources(),R.drawable.hh);
// 根据Bitmap对象创建ImageSpan对象
ImageSpan imageSpan = new ImageSpan(bitmap);
// 创建一个SpannableString对象,以便插入用ImageSpan对象封装的图像
SpannableString spannableString = newSpannableString("f");
// 用ImageSpan对象替换"f"占位符
spannableString.setSpan(imageSpan, 0, 1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
// 将获得的图像追加到EditText控件的最后
EditTexteditText=(EditText)findViewById(R.id.neveredit);
editText.append(spannableString);
}catch(Exception e){}
}
});
- Android开发之响应用户界面的事件
- Android 开发事件响应之基于监听的事件响应
- android 用户界面笔记之Button和ImageButton实现按钮响应事件两种方法
- 性能优化之快速响应的用户界面
- 性能优化之快速响应的用户界面
- 性能优化之快速响应的用户界面
- 性能优化之快速响应的用户界面
- 性能优化之快速响应的用户界面
- 性能优化之快速响应的用户界面
- Android开发指南-用户界面-事件处理
- Android开发指南-用户界面-事件处理
- Android开发指南-用户界面-事件处理
- Android开发指南-用户界面-事件处理
- 转:Android开发指南-用户界面-事件处理
- Android开发指南-用户界面-事件处理
- Android开发指南-用户界面-事件处理
- Android开发指南-用户界面-事件处理
- Android开发指南-用户界面-事件处理
- Android开发之联系人操作
- Android开发之获取网页源码
- Android开发之国际化问题
- Android开发之图片浏览器
- Android开发之Intent
- Android开发之响应用户界面的事件
- Android开发之Dialog
- QImage - QByteArray - QString
- Android开发之Menu的应用
- Android开发之如何调用WebService
- Android开发之方向传感器的使用
- Android开发之重力传感器
- Android开发之广播接受者Broadcast…
- Android开发之SQLite数据操作