2016-04-01 9 views
2

TextEditにカーソルを移動して選択可能なテキストだがキーボードはない(電卓アプリのように)。 キーボードが表示された直後にキーボードを隠すソリューションを試しました。それは本当に遅く、消え去る前にそれ自体を示しています。カーソルはあるがキーボードはないテキスト編集

もっと良い解決策がありますか(アンドロイド5.0.1以上)?

android:windowSoftInputMode="stateHidden"(マニフェスト内の活性タグ)のいずれか

EditText et = (EditText) findViewById(R.id.editText); 
et.setInputType(InputType.TYPE_NULL); 
et.setCursorVisible(true); 
et.setTextIsSelectable(true); 

を動作しませんでした。

ありがとうございました

+0

なぜデータを入力したくないのですか? –

+0

@SagarNayakカーソルがある場所にボタンを挿入したいのですが! –

答えて

1

あなたの行動に以下のコードを追加してみてください。リクエストフォーカス用

android:windowSoftInputMode="stateHidden" 

と同様に、

<activity android:name=".MainActivity" 
      android:windowSoftInputMode="stateHidden" /> 

編集

<FrameLayout 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:background="@android:color/transparent" 
    android:focusable="true" 
    android:focusableInTouchMode="true"> 
</FrameLayout> 

<EditText 
    android:id="@+id/searchAutoCompleteTextView_feed" 
    android:layout_width="200dp" 
    android:layout_height="wrap_content" 
    android:inputType="text" /> 

使用FrameLayout

public static void hideKeyboard(@NonNull Activity activity) { 
    InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); 
    View f = activity.getCurrentFocus(); 
    if (null != f && null != f.getWindowToken() && EditText.class.isAssignableFrom(f.getClass())) 
     imm.hideSoftInputFromWindow(f.getWindowToken(), 0); 
    else 
     activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
} 
+0

これは変ですが、これを追加してもキーボードはまだ表示されています! –

+0

@EbrahimTahernejad私の編集した答えをチェックしてください。 –

+0

申し訳ありませんが、この質問は関連していません。私はマニフェストXMLを編集しており、変更はアプリケーションには表示されません。私は何をすべきか ? –

1

にフォーカスを追加しません。

+0

どうすればいいですか? –

+0

あなたのutilsクラスなどでそれを宣言し、メソッドを呼び出す: Class.hideKeyboard(getActivity()); (フラグメント内) または Class.hideKeyboard(this); (活動中) – dpulgarin

1

は、あなたの活動のためにマニフェストファイルに

android:windowSoftInputMode="stateAlwaysHidden" 

を追加します。これは私が私のUtilsのクラスでキーボードを非表示にするこの方法を使用EditText

+0

私はこれを覚えておいてから使用しました。私の銀河系s6でコンパイルして実行すると、アクティビティタグにこの属性が設定されていてもキーボードが表示されます。なぜ私は理解できません! –

+0

私はすべて同じデバイスを使用しています。 – Piyush

関連する問題