Pergunta

No Android, como é que vamos fazer o teclado do dispositivo sempre visível na aplicação? A parte superior exibe o conteúdo do aplicativo quer tornar ea parte inferior mostra o teclado sempre.

Foi útil?

Solução

Adicionar android: windowSoftInputMode = "stateAlwaysVisible" a sua atividade no arquivo AndroidManifest.xml:

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

No meu aplicativo de teste isso mostra o teclado na partida do aplicativo embora não seja fixo lá, mas pode ser descartada, premindo o botão de volta.

Para certificar-se o teclado está sempre visível que você pode ter para criar o seu próprio teclado como parte da interface do usuário de sua aplicação. Aqui está um tutorial para mostrar-lhe como fazer isso com KeyboardView: http: // www .fampennings.nl / Maarten / android / 09keyboard / index.htm

Outras dicas

Você deve ter uma EditText em seu layout e que necessidade de classe extensão de base EditText. em seguida, substituir o método onKeyPreIme() e retorno true . Agora seu teclado será sempre visível e não pode ser demitido pelo tecla Voltar.

Atenção :. Porque do seu método onKeyPreIme() retornos true você não pode sair do seu aplicativo usando a chave de volta

Exemplo:

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 () - desenvolvedor Android

Eu encontrei uma maneira que funciona para mim para manter o teclado virtual visível após uma edição no meu campo myEditText de EditText classe. O truque consiste em substituir o método onEditorAction para que ele retorne true

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

ou então têm onEditorAction retorno true somente após o "Done" chave clique com o botão ( IME_ACTION_DONE ) caso contrário 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;
    }       
  });

(ver também este resposta sobre o método onEditorAction)

Adicionando android:windowSoftInputMode="stateAlwaysVisible ao arquivo de manifesto ajudou a ter o teclado virtual mostrado no início da atividade mas não impedi-lo de desaparecer novamente sempre que a tecla "Done" foi clicado após uma edição.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top