2016-09-20 4 views
1

Я пытаюсь заставить цифровую клавиатуру отображать, когда загружаются мои действия и EditText. Кажется, есть довольно простой ответ, данный here и в другом месте: вы говоритеНе удается разрешить символ showsoftinput

EditText yourEditText= (EditText) findViewById(R.id.yourEditText); 
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT); 

Fine тогда. Так что я это делаю и я включаю импорт:

import android.content.Context; 
import android.os.Bundle; 
import android.view.inputmethod.InputMethodManager; 
import android.widget.EditText; 

Но когда мы доберемся до showSoftInput, студия становится красным и говорит: «Не удается разрешить символ showSoftInput». Должен ли он получать этот символ, когда я импортирую InputMethodManager? showSoftInput doesn't seem to be deprecated или что-нибудь еще.

ответ

2

Клавиатура не открывается, потому что она нуждается в некоторой задержки,

Следуйте этот код

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> 
Смежные вопросы