android软键盘收起的同时在其他控件做另外的逻辑处理
2017-03-12 19:21
447 查看
前几天做了一个功能,我们通过点击输入框EditText,系统会自动获取焦点弹出软键盘,现在我们想做的是在软键盘退出的同时时利用其他控件做其他的业务处理,比如现在想做的是我在1号输入框输入了文字,那么当我点击1号输入框时输入框获得焦点系统弹出软键盘,当我点击2号输入框时,2号输入框显示我们在1号输入框输入的文字。这个例子我用的是监听输入框焦点的有无进行逻辑判断,正常我们应该监听软件盘收起时处理我们的逻辑,但谷歌没有给出相应的监听方法。所以我们利用点击手机的物理返回按键软键盘消失,1号输入框失去焦点,主活动中监听1号输入框焦点的有无。
下面是具体步骤:
1、首先写我们自己的类ExtendEditext继承Editext并重写它的dispatchKeyEventPreIme(KeyEvent event)方法
2、先在布局文件中例如activity_main.xml中添加我们的两个输入框
3、在主活动中进行逻辑处理,利用setOnFocusChangeListener监听焦点
下面是具体步骤:
1、首先写我们自己的类ExtendEditext继承Editext并重写它的dispatchKeyEventPreIme(KeyEvent event)方法
public class ExtendEditext extends EditText{ public ExtendEditext(Context context) { super(context); } public ExtendEditext(Context context, AttributeSet attrs) { super(context, attrs); } public ExtendEditext(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public ExtendEditext(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } @Override public boolean dispatchKeyEventPreIme(KeyEvent event) {
//按返回按键时使1号输入框失去焦点 if(event.getKeyCode() == KeyEvent.KEYCODE_BACK) { this.clearFocus();//清除焦点 } return super.dispatchKeyEventPreIme(event); } }
2、先在布局文件中例如activity_main.xml中添加我们的两个输入框
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.android.by.test.MainActivity" android:orientation="vertical"> <!--引用我们自己继承的输入框--> <com.android.by.test.ExtendEditext android:id="@+id/text1" android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_marginTop="30dp"> </com.android.by.test.ExtendEditext> <EditText android:id="@+id/text2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="30dp"/> </LinearLayout>
3、在主活动中进行逻辑处理,利用setOnFocusChangeListener监听焦点
public class MainActivity extends AppCompatActivity { ExtendEditext editext1; EditText editText2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editext1 = (ExtendEditext) findViewById(R.id.text1); editText2 = (EditText) findViewById(R.id.text2); editext1.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if(!editext1.hasFocus()) { // Toast.makeText(MainActivity.this,"新的逻辑",Toast.LENGTH_SHORT).show(); editText2.setText(editext1.getText().toString()); } } }); } }
相关文章推荐
- Android EditText点击其他区域收起软键盘
- android开发_MotionEvent与其他事件处理_手势_键盘_鼠标
- Android如何处理列表控件的item同时点击事件
- android 通过layoutchange监控键盘与虚拟按键的处理逻辑
- Android点击其他任意位置收起软键盘
- android 点击空白处收起键盘和自定义EditText实现右下角计数控件
- Android AudioManager处理两个播放器同时有声音,停止其中一个播放的问题,暂停其他的播放
- android 线程辅助处理类(用于在主线程和其他线程中执行逻辑)
- android 同时点击两个按钮或其他控件均响应的问题
- Android控件编辑时键盘弹起与关闭处理
- androidUI第六部分---其他常用控件举例
- UITextField控件处理键盘弹出时遮住输入框的问题。
- [转]Android键盘和触摸事件处理
- UITextField控件处理键盘弹出时遮住输入框的问题。
- android中Touch事件的处理逻辑
- 展开树形控件atv第ai_s到ai_e层得节点,其他层得节点收起
- Android自定义控件之我的电话小键盘
- Android 控件背景颜色处理
- android中Touch事件的处理逻辑
- android的DatePicker控件bug处理