2011-10-03 90 views
1

说我有一个InputService(键盘)启动一个活动。由于该活动具有透明背景,因此可以看出,该活动正在进行。一旦活动开始,键盘将隐藏起来并在活动结束后保持隐藏状态。如何防止键盘被隐藏?

如何防止隐藏?

Intent PopIntent = new Intent(getBaseContext(), popup.class); 
PopIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
getApplication().startActivity(PopIntent); 

回答

1

只是这样做:

//Show soft-keyboard: 
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 
+0

不,不是我真正想到的。 :)它使键盘出现在我的新活动上,但我需要防止它从我的新活动中消失。 – Roger

+0

最适合我的是Android Manifest中适合您的活动。 android:windowSoftInputMode =“stateVisible” – Uttam

+0

感谢您的输入,键盘应该保持UNDER新的活动,而不是它。 – Roger

-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的相关位置?与位置我的意思是X和Y坐标模拟在该位置touchevent。