web-dev-qa-db-ja.com

Android:キーパッドを常に表示する方法は?

Androidでは、デバイスのキーパッドをアプリケーションで常に表示する方法を教えてください。上部にはアプリケーションがレンダリングしたいコンテンツが表示され、下部には常にキーパッドが表示されます。

32
Prabhu R

Android:windowSoftInputMode = "stateAlwaysVisible"をAndroidManifest.xmlファイルのアクティビティに追加します。

<activity Android:name=".MainActivity"
Android:label="@string/app_name"
Android:windowSoftInputMode="stateAlwaysVisible" />

私のテストアプリでは、アプリケーションの起動時にキーボードが表示されますが、ここでは修正されていませんが、[戻る]ボタンを押すと閉じることができます。

キーボードが常に表示されるようにするには、アプリケーションのUIの一部として独自のキーボードを作成する必要がある場合があります。これは、KeyboardViewでこれを行う方法を示すチュートリアルです: http://www.fampennings.nl/maarten/Android/09keyboard/index.htm

46
Intrications

レイアウトにはEditTextが必要であり、EditText基本クラスを拡張する必要があります。次にonKeyPreIme()メソッドをオーバーライドし、 本当。これで、キーボードは常に表示され、戻るキーで閉じることができなくなります。

注意onKeyPreIme()メソッドはtrueを返すため、バックキーを使用してアプリを終了することはできません。

例:

public class CustomEdit extends EditText {

    public CustomEdit(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }
    @Override
    public boolean onKeyPreIme(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        Log.e("Log", "onKeyPreIme");
        return true;
        //return super.onKeyPreIme(keyCode, event);
    }
}

onKeyPreIme()-Android開発者

10
Favas Kv

クラスmyEditTextEditTextフィールドを編集した後、ソフトキーボードを表示したままにする方法が見つかりました。トリックは、onEditorActionを返すようにtrueメソッドをオーバーライドすることです。

  myEditText.setOnEditorActionListener(new OnEditorActionListener() {                     
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
      return true;
    }       
  });

または、「[完了]」キーを押した後にのみonEditorActiontrueを返す( IME_ACTION_DONE )それ以外の場合はfalse

  myEditText.setOnEditorActionListener(new OnEditorActionListener() {                     
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
      if(actionId==EditorInfo.IME_ACTION_DONE){
        Log.i(LOG_TAG, "IME_ACTION_DONE");
        return true;    
      }
      return false;
    }       
  });

onEditorActionメソッドの この答え も参照)

マニフェストファイルにAndroid:windowSoftInputMode="stateAlwaysVisibleを追加すると、アクティビティの開始時にソフトキーボードが表示されるようになりますが、編集後に[完了]キーがクリックされるたびにソフトキーボードが非表示になるのを防ぐことはできませんでした。

1
user2314737