Android 系统EditText获取焦点并且设置相关信息
来源:互联网 发布:股票入门 知乎 编辑:程序博客网 时间:2024/06/05 12:35
任何的控件都是基于View类的,所以EditText的控件监听也是在View.java中实现的
1、在frameworks/base/core/java/android/view/View.java中注册广播接收填充的EditText信息
private Handler mscanHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
View mFocus = getRootView().findFocus();
//Log.i("123","hava scan message "+mFocus);
if(mFocus !=null&&mFocus instanceof EditText){
EditText mEdittext = (EditText) mFocus;
if(mEdittext.getText().toString().isEmpty()){
mEdittext.setText(msg.getData().getString("result"));
}else{
//mEdittext.setText("data");
}
}
}
};
BroadcastReceiver scanReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String testinfo = intent.getExtras().getString("result");
Message mMessage = new Message();
Bundle mBundle = new Bundle();
mBundle.putString("result", testinfo);
mMessage.setData(mBundle);
mscanHandler.sendMessage(mMessage);
}
};
private void inittestinfo(){
IntentFilter mIntentFilter = new IntentFilter("android.test.info");
mContext.registerReceiver(testReceiver, mIntentFilter);
}
在onFocusChanged函数中注册 inittestinfo()广播接收器
protected void onFocusChanged(boolean gainFocus, @FocusDirection int direction,
@Nullable Rect previouslyFocusedRect) {
if (gainFocus) {
sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
} else {
notifyViewAccessibilityStateChangedIfNeeded(
AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED);
}
//add test focus code
if(gainFocus){
inittestinfo();
}
..........
.........
}
且在clearFocusInternal函数中 取消注册广播接收器
mContext.unregisterReceiver(scanReceiver);
测试在你的APK中可以发送广播看是否所有的EditText会变成12345
Intent mIntent = new Intent("android.test.info");
mIntent.putExtra("result", "12345");
sendBroadcast(mIntent);
- Android 系统EditText获取焦点并且设置相关信息
- android开发路-设置EditText获取焦点
- 设置EditText获取焦点
- android editText 获取焦点
- Android 设置Edittext获取焦点并弹出软键盘
- Android EditText 获取到焦点
- Android EditText获取焦点事件
- android listView EditText获取焦点
- android EditText自动获取焦点
- Android之EditText获取焦点
- Android EditText获取焦点失去焦点监听
- Android 点击listView的item弹出软键盘并且EditText获取焦点
- Android 相关知识 EditText焦点相关问题
- EditText自动获取焦点问题设置
- edittext设置不自动获取焦点
- 设置EditText不自动获取焦点
- 设置edittext不自动获取焦点
- 进入新界面editText获取焦点 并且隐藏软键盘
- C++中两个类简单互相包含会形成死循环
- 毕业设计引发的一些想法
- 搭建git代码服务器教程
- hibernate Criteria
- centos部署svn服务器以及相关重要配置
- Android 系统EditText获取焦点并且设置相关信息
- Linux系统中运行.sh(Shell脚本)文件
- 项目一——电子通讯录
- 基于V4L2的摄像头图像采集
- GitHub 版本控制 项目托管 00 总体框架
- 最大间距-LintCode
- Android Widget 开发详解(二) +支持listView滑动的widget
- 《简明Python 教程》学习笔记
- pytho 迭代器与生成器