我在完全相同的问题搁浅:-(你同时找到了解决办法
我试图以编程方式打开键盘?再次回到最初的活动并在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的相关位置?与位置我的意思是X和Y坐标模拟在该位置touchevent。
不,不是我真正想到的。 :)它使键盘出现在我的新活动上,但我需要防止它从我的新活动中消失。 – Roger
最适合我的是Android Manifest中适合您的活动。 android:windowSoftInputMode =“stateVisible” – Uttam
感谢您的输入,键盘应该保持UNDER新的活动,而不是它。 – Roger