2015-12-18 5 views
0

Я пытаюсь создать простой текстовый приключенческий тип игры в качестве проекта, который поможет мне изучить материал. Для этого мне нужно, чтобы клавиатура всегда была видимой и фокусировалась на единственном редактировании текста на экране (userinputEditText).Android Studio - Всегда показывать клавиатуру?

Пользователь вводит что-то, нажатие вводит и текст записывается в строку, которая затем отображается в текстовом представлении (mainTextView), который находится внутри ScrollView, так что текст всегда показывает самую последнюю запись. Ключевой прослушиватель используется, чтобы определить, когда нажата клавиша ввода, чтобы избежать просто добавления новой строки в Редактировать текст.

Когда вы нажимаете enter, если клавиатура закрывается, и вы должны снова нажимать Edit Text для ввода. Я знаю, что есть простое решение, чтобы держать клавиатуру открытой навсегда, но я не могу получить ничего, что пытался работать.

final EditText userinputEditText = (EditText) findViewById(R.id.user_input_edittext); 
    final TextView mainTextView = (TextView) findViewById(R.id.mainTextView); 
    final ScrollView scrollview = (ScrollView) findViewById(R.id.scrollView); 
    scrollview.fullScroll(ScrollView.FOCUS_DOWN); 

    /// Update MainText window when Enter is pressed 
    userinputEditText.setOnKeyListener(new View.OnKeyListener() { 

     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if (event.getAction() == KeyEvent.ACTION_DOWN) { 
       switch (keyCode) { 
        case KeyEvent.KEYCODE_DPAD_CENTER: 
        case KeyEvent.KEYCODE_ENTER: 
         String userInputString = userinputEditText.getText().toString(); 
         mainTextView.append(userInputString + "\n"); 
         userinputEditText.setText(""); 
         scrollview.fullScroll(ScrollView.FOCUS_DOWN); 
         return true; 
        default: 
         break; 
       } 
      } 
      return false; 
     } 
    }); 

} 
+1

Попробуйте это: HTTP: // StackOverflow .com/вопросы/7202369/keep-soft-keyboard-open-when-enter-key-is-press – java123999

+1

Фантастическая благодарность за ответ, который был действительно полезен! – wgibbsw

+0

Без проблем удачи – java123999

ответ

1

Ниже приведен пример кода, который вы могли бы повторно использовать,

В AndroidManifest.xml использовать это ..

андроида: windowSoftInputMode = "stateAlwaysVisible"

, как показано ниже

<activity android:name=".MainActivity" 
      android:windowSoftInputMode="stateAlwaysVisible"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
</activity> 

В макете вы можете использовать

<EditText 
     android:id="@+id/editText" 
     android:singleLine="true" 
     android:imeOptions="actionDone" 
     ... 
    /> 

В OnCreate() метод вашей деятельности, вы могли бы реализовать что-то вроде этого ...

final EditText editText = ((EditText) findViewById(R.id.editText)); 
     editText.setOnEditorActionListener(new EditText.OnEditorActionListener(){ 
      @Override 
      public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
        String value = editText.getText().toString(); 
        //TODO .. write your respective logic to add data to your textView 

        editText.setText(""); // clear the text in your editText 
        return true; 

      } 
     }); 
+0

Большое спасибо за ваш ответ, ничего не работало до последнего образца, еще раз спасибо! – wgibbsw