我正在尝试在模拟器中为我的EditText显示键盘,但无论我尝试它都不会出现。
这是我在XML文件中声明它的方式:
<EditText
android:id="@+id/editTextSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="50dp"
android:layout_weight="0.05"
android:background="@color/white"
android:ems="10"
>
</EditText>
这是我在java文件中使用它的方式:
private void createTextEdit()
{
EditText searchTextField = (EditText)findViewById(R.id.editTextSearch);
searchTextField.addTextChangedListener(new TextWatcher()
{
public void afterTextChanged(Editable s)
{
System.out.println("AFTER TEXT CHANGED");
}
public void beforeTextChanged(CharSequence s,
int start, int count, int after)
{
System.out.println("BEFORE TEXT CHANGED " + s);
}
public void onTextChanged(CharSequence s,
int start, int before, int count)
{
System.out.println(s);
}
});
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(searchTextField, InputMethodManager.SHOW_IMPLICIT);
}
我还在Manifest文件中声明了以下内容:
<activity
android:name = "com.blabla.blablabla.MyActivity"
android:windowSoftInputMode="stateVisible">
</activity>
键盘永远不会显示。我错过了什么?
答案 0 :(得分:1)
代码在设备上完美运行。根据我的说法,仿真器打开了硬键盘,因此它不会显示软键盘。尝试在设备上运行此代码。
答案 1 :(得分:1)
请确保您的仿真器没有“硬件键盘存在”。
答案 2 :(得分:0)
试试这个;
<EditText
....
<requestFocus />
</EditText>
答案 3 :(得分:0)
尝试强制打开软键盘,如下所示:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(searchTextField, InputMethodManager.SHOW_FORCED); <-- change here.