假设我有一个启动活动的InputService(键盘)。由于活动具有透明的背景,可以看出,它在它下面进行着。活动开始后,键盘会隐藏在活动结束后,并在活动结束后保持隐藏状态。
如何防止它隐藏?
Intent PopIntent = new Intent(getBaseContext(), popup.class);
PopIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplication().startActivity(PopIntent);
答案 0 :(得分:1)
这样做:
//Show soft-keyboard:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
答案 1 :(得分:-1)
我陷入了完全相同的问题:-(。你有没有找到解决方案?
在我回到原始活动并在TextView上模拟touchevent以便TextView再次绑定到InputMethodService之后,我尝试以编程方式再次打开键盘:
Runnable r = new Runnable() {
@Override
public void run() {
final Instrumentation inst = new Instrumentation();
int[] location = new int[2];
tvEdit1.getLocationOnScreen(location);
long time1 = SystemClock.uptimeMillis();
long time2 = SystemClock.uptimeMillis();
MotionEvent mv = MotionEvent.obtain(time1, time2, MotionEvent.ACTION_DOWN,
location[0], location[1], 0);
inst.sendPointerSync(mv);
time1 = SystemClock.uptimeMillis();
time2 = SystemClock.uptimeMillis();
mv = MotionEvent.obtain(time1, time2, MotionEvent.ACTION_UP,
location[0], location[1], 0);
inst.sendPointerSync(mv);
}
};
Thread t = new Thread(r);
t.start();
如果我知道用户点击了哪个TextView,那就有效。有没有办法在InputMethodService类中找到绑定TextView的相关位置?位置是指用于模拟该位置上的touchevent的x和y坐标。