2016-03-08 91 views
1

我有两个EditText在我的actvity_main,点击它我想禁用android的软键盘。为了实现这个功能,我正在关注this link隐藏软键盘为一个EditText工作,但不能正常工作其他

两个EditText上有以下ID分配给它

firstText and secondText 

这是我同时应用于EDITTEXT

firstText.setOnTouchListener(new OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      v.onTouchEvent(event); 
      InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
      if (imm != null) { 
       imm.hideSoftInputFromWindow(v.getWindowToken(), 0); 
      }     
      return true; 
     } 
    }); 

对于secondText只有名称变化的代码。对于两个EditText软键盘都不显示。这正是我想要的,但我也想要光标。在这种情况下,firstText不显示键盘,但具有光标。对于secondText,我无法保留游标。

我试着在条件和setOnTouchListener内打印值。他们都完美无缺。

有人可以帮助我在哪里出错吗?

谢谢!提前

回答

1

您可以使用下面的代码来显示和隐藏键盘,它适用于我。

public static void showKeyboard(Activity activity) { 
     if (activity != null) { 
      activity.getWindow() 
        .setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 
     } 
    } 

    public static void hideKeyboard(Activity activity) { 
     if (activity != null) { 
      activity.getWindow() 
        .setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
     } 
    } 

希望它对您有帮助。

+0

感谢您的回答,但我解决了这个问题。显然,我已经宣布了在secondText上隐藏软键盘的更多条件。 –