2017-02-23 4 views
0

私はその下に3つのトグルボタンがあるEditTextを持っています。ボタンをタップするとテキストフォーカスが維持されます

私は3つのトグルのいずれかをタップすると、EditTextに焦点を当てて、キーボードを表示したままにしておきたいと思います。つまり、フォーカスがEditTextの外にあるときにキーボードを非表示にしたくない(私はキーボードを隠すのを見てはならず、再び開くべきだ)。

私は無駄に次のことを試してみた:

toggleButton.setOnFocusChangeListener(new View.OnFocusChangeListener() 
    { 
     @Override 
     public void onFocusChange(View v, boolean hasFocus) 
     { 
      editText.requestFocus(); 
      // This doesn't fully work. 
      // Focus is on editText but keyboard still hides when I 
      // tap on the toggle button. 
     } 
    }); 

のEditTextとトグルボタンがフラグメントであり、そして親アクティビティがAndroidManifestでこの構成を有しています。

<activity 
     android:name=".activities.MyActivity" 
     android:label="@string/m_activity" 
     android:theme="@style/AppTheme.NoActionBar" 
     android:windowSoftInputMode="stateHidden|adjustResize" /> 

この問題を解決するにはどうすればよいですか?

+0

私の答えを確認しましたか? –

答えて

1

私はあなたがこれはそれがあなたのyourEditTextに変更されるたびにフォーカスを要求し、あなたはまた、キーボードを表示します、ということを意味OnFocusChangeListener

yourEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() 
    { 
     @Override 
     public void onFocusChange(View v, boolean hasFocus) 
     { 
      yourEditText.requestFocus(); 
      InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
      imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT); 
     } 
    }); 

を使用して、あなたのyourEditTextのためにそれを行うべきだと思います。あなたはLayoutParms.Exampleを使用することができます

0

1.Hideの下にキーボード

this.getWindow().setSoftInputMode 
(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

を与えている2.Showキーボード

this.getWindow().setSoftInputMode 
(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 

あなたは他のオプションをお知りになりたい場合は。以下のリンクを参照してください。

https://developer.android.com/reference/android/view/WindowManager.LayoutParams。 html

関連する問題