我要重写后退按钮显示软键盘时。基本上当返回按钮被击中,我想键盘辞退了,我要追加一些文字上的任何用户在编辑文本字段中键入。所以基本上我需要知道键盘何时被解雇。在四处搜寻之后,我意识到这没有API,唯一真正的方法就是制作EditText类。的Android定制的EditText和后退按钮覆盖
所以我创建了自己的EditText类和扩展的EditText这样
public class CustomEditText extends EditText
{
public CustomEditText(Context context)
{
super(context);
init();
}
public CustomEditText(Context context, AttributeSet attrs)
{
super(context, attrs);
init();
}
public CustomEditText(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
init();
}
private void init()
{
}
}
我也加入了这个方法
@Override
public boolean dispatchKeyEventPreIme(KeyEvent event)
{
if (KeyEvent.KEYCODE_BACK == event.getKeyCode())
{
Log.v("", "Back Pressed");
//Want to call this method which will append text
//init();
}
return super.dispatchKeyEventPreIme(event);
}
现在这种方法不覆盖的后退按钮,关闭键盘,但我不知道如何将文本传递到EditText字段。有谁知道我会怎么做?
也是另一种快速的问题,没有人知道为什么这种方法被称为两次?正如你所看到暂且,我添加了一个快速的logcat消息来测试它的工作原理,但是当我打的返回按钮,它打印了两次,任何理由为什么它会是这样?
任何帮助将不胜感激!
啊,傻了,应该已经意识到了。但是关于我的另一个问题。你知道当键盘被解散时我怎样将文本传递给EditText字段吗? – AdamM 2012-08-15 08:33:30
检查编辑。 – nandeesh 2012-08-15 08:35:21
这样一个简单的修复。非常感谢,完美的作品! – AdamM 2012-08-15 08:38:13