关于在EditText 中监听软键盘的弹出和退出
来源:互联网 发布:长图文制作软件 编辑:程序博客网 时间:2024/06/16 12:26
在我们实际的开发过程中,往往要监听软键盘的弹出和退出动作,这个我提供一个方法。很有效我试过了。
复写EditText
package com.mstar.test;
import android.content.Context;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
public class EditTextSpuer extends EditText{
private Context mContext;
InputMethodManager imm;
public EditTextSpuer(Context context) {
super(context);
this.mContext = context;
// TODO Auto-generated constructor stub
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_ENTER ) {
Log.v("xpf","--------------------+onKeyDown---------软键盘弹出");
}
return super.onKeyDown(keyCode, event);
}
public boolean onKeyPreIme (int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN ) {
Log.v("xpf","--------------------+onKeyPreIme---------软键盘退出");
}
return super.onKeyPreIme(keyCode, event);
}
}
activity 内容:
package com.mstar.test;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.view.inputmethod.InputMethodManager;
import android.widget.*;
public class EditTextTest extends Activity {
private LinearLayout mainLayout=null;
private RelativeLayout layout=null;
private TextView tv1=null; //标题
private TextView tv2=null; //可输入剩余字符数
private EditText et=null; //输入框
InputMethodManager imm;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mainLayout_init();
setContentView(mainLayout);
}
/*mainLayout初始化*/
void mainLayout_init(){
mainLayout=new LinearLayout(this);
LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(-1, -1);
mainLayout.setLayoutParams(lp);
mainLayout.setOrientation(LinearLayout.VERTICAL);
layout_init();
mainLayout.addView(layout);
et_init();
mainLayout.addView(et);
}
/*layout1初始化*/
void layout_init(){
layout=new RelativeLayout(this);
RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(-1, -2);
layout.setLayoutParams(lp);
tv1_init();
layout.addView(tv1);
tv2_init();
layout.addView(tv2);
}
/*tv11初始化*/
void tv1_init(){
tv1=new TextView(this);
RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(-2, -2);
lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
tv1.setLayoutParams(lp);
tv1.setTextSize(30);
tv1.setText("请输入账号:");
}
/*tv12初始化*/
void tv2_init(){
tv2=new TextView(this);
RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(-2, -2);
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
tv2.setLayoutParams(lp);
tv2.setTextSize(30);
tv2.setText("12");
}
/*et1初始化*/
void et_init(){
et=new EditTextSpuer(this){
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
Log.v("xpf", "onCreateInputConnection-------------");
return new TestInputConnection(super.onCreateInputConnection(outAttrs),
false);
}
};
LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(-1,-2);
et.setLayoutParams(lp);
et.setSingleLine(true);
//字符变化监听
TextWatcher tw=new TextWatcher(){
public void afterTextChanged(Editable s) {
//限制输入,最多允许输入12个
if(et.length()>12){
//截取字符串,舍弃最后一个
et.setText((et.getText()).subSequence(0, 12));
//设置光标。由于用setText函数会导致光标复位,所以重新设置光标到末尾
et.setSelection(12);
}
//显示剩余可输入字符数
tv2.setText(String.valueOf(12-et.length()));
}
public void beforeTextChanged(CharSequence s, int start, int count,int after) {}
public void onTextChanged(CharSequence s, int start, int before,int count) {}
};
et.addTextChangedListener(tw);
}
}
- 关于在EditText 中监听软键盘的弹出和退出
- 关于 edittext 软键盘退出监听解决办法
- 关于 edittext 软键盘退出监听解决方法
- 关于点击某个按钮需要Edittext和软键盘一起弹出的操作和监听软键盘的关闭
- 关于ListView中EditText在软键盘弹出后的焦点问题
- 关于ListView中EditText点击弹出软键盘及软键盘弹出后的焦点问题
- PopupWindow中使用EditText软键盘的弹出和隐藏
- PopupWindow中使用EditText软键盘的弹出和隐藏
- android Edittext 监听软键盘弹出显示和消失隐藏
- Android:EditText 软键盘退出监听解决方法
- Android在Fragment中监听软键盘的弹出和关闭
- 监听软键盘的隐藏和弹出
- 监听软键盘的收起和弹出
- 软键盘隐藏和弹出的监听
- Android在dialog中使用EditText不能弹出软键盘
- android 自定义View在弹出的软键盘之上,以及测量软键盘高度和监听软键盘状态
- android 自定义View在弹出的软键盘之上,以及测量软键盘高度和监听软键盘状态
- android关于EditText弹出软键盘的问题
- 一个障碍,就是一个超越自我的契机
- 两个数和三个数比较得出最大数
- win7主机与centos6.2虚拟机建立局域网(文本模式)
- 使用CXF框架实现webservice的一个简单例子
- 利用版本号来清空客户端文件缓存
- 关于在EditText 中监听软键盘的弹出和退出
- 什么是互联网?(转载-Google TCP/IP知识简介)
- 设计一个个人纳税计算程序
- SQL Serve 分页方式
- Programming Perl----------Column1
- 如果有一天你没有了动力,可以看看
- 百度之星-百度的新大厦
- multiple definition ; first defined here
- The difference between Proxy and CGLIB