0

我正在尝试在模拟器中为我的 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>

并且从未显示键盘。我错过了什么?

4

4 回答 4

1

代码在设备上运行良好。据我说,模拟器打开了硬键盘,所以它不会显示软键盘。尝试在设备上运行此代码。

于 2013-03-04T12:32:13.233 回答
1

请确保您的模拟器没有“硬件键盘存在”。

于 2013-03-04T12:40:28.203 回答
0

试试这个;

<EditText
....
<requestFocus /> 
</EditText>
于 2013-03-04T12:26:44.350 回答
0

尝试强制软键盘打开如下:

  InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
  imm.showSoftInput(searchTextField, InputMethodManager.SHOW_FORCED); <-- change here.
于 2013-03-04T12:33:33.437 回答