Я пытаюсь заставить цифровую клавиатуру показывать, когда загружаются мои действия и EditText. Кажется, здесь есть довольно простой ответ здесь и в другом месте: вы говорите
EditText yourEditText= (EditText) findViewById(R.id.yourEditText);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);
Хорошо. Поэтому я делаю это, и я включаю импорт:
import android.content.Context;
import android.os.Bundle;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
Но когда мы получаем showSoftInput, Studio загорается красным цветом и говорит: "Не удается разрешить символ showSoftInput". Должен ли он получать этот символ, когда я импортирую InputMethodManager? showSoftInput не выглядит устаревшим или что-то еще.
Клавиатура не открывается, потому что ей требуется некоторая задержка,
Следуйте этому коду
public class MainActivity extends AppCompatActivity {
private EditText editText;
private Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.editText);
/* */
handler.postDelayed(new Runnable() {
@Override
public void run() {
editText.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
}
},100);
}
}
и XML
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:focusable="true"
android:inputType="number"
android:text="">
<requestFocus></requestFocus>
</EditText>