【问题标题】:EditText onClick not shows Virtual KeyboardEditText onClick 不显示虚拟键盘
【发布时间】:2013-02-11 11:05:04
【问题描述】:

如果我单击我的 EditText,则不会显示虚拟键盘。光标已显示,但没有可键入的键盘。

我什至尝试过手动打开但没有用。

这是我的代码:

public class CreateNote extends Activity {
EditText titleEdit;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.createnote);
    titleEdit = (EditText) findViewById(R.id.titleEdit);
    titleEdit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            InputMethodManager imm = (InputMethodManager) CreateNote.this
                    .getSystemService(Service.INPUT_METHOD_SERVICE);
            imm.showSoftInput(titleEdit, 0);
        }
    });
    }
   }

布局片段:

 <FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#989898" >

    <EditText
        android:id="@+id/titleEdit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/edittextdrawale"
        android:ems="10"
        android:textColor="#fff"
        android:textColorHint="#fff" >

        <requestFocus />
    </EditText>

</FrameLayout>

我的虚拟键盘玩捉迷藏的原因是什么? 我在真机上测试,而不是在模拟器上。

【问题讨论】:

    标签: android android-edittext android-virtual-keyboard


    【解决方案1】:

    试试这个,它对我有用。

    EditText etHorseName = (EditText) getView().findViewById(R.id.horseName);
    etHorseName.clearFocus();
    

    onCreate() 或你想要的地方。

    【讨论】:

      【解决方案2】:

      迟到的答案,但这里是如何在不添加代码的情况下解决它,只需从您的 XML 中删除它:

      <requestFocus />
      

      不知道为什么设置后键盘不显示...但是如果您先松开焦点然后单击编辑文本,它确实会显示。我在 Android 2.3.6 上遇到了问题,但它在 4.1.2 上运行,所以这可能是一个早期的错误。

      【讨论】:

        【解决方案3】:

        这只是一种默认行为,您不应该手动执行此操作,请从代码中删除以下部分。

        titleEdit.setOnClickListener(new OnClickListener() {
        
            @Override
            public void onClick(View v) {
        
                InputMethodManager imm = (InputMethodManager) CreateNote.this
                        .getSystemService(Service.INPUT_METHOD_SERVICE);
                imm.showSoftInput(titleEdit, 0);
            }
        });
        

        【讨论】:

          【解决方案4】:

          尝试使用以下代码隐藏和显示键盘:

          InputMethodManager imm = (InputMethodManager) this.getSystemService(Service.INPUT_METHOD_SERVICE);
          // To show keyboard
          imm.showSoftInput(titleEdit, 0);
          // To hide keyboard
          imm.hideSoftInputFromWindow(titleEdit.getWindowToken(), 0);  
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-01-02
            • 1970-01-01
            • 2020-10-09
            • 2017-07-16
            • 2019-03-21
            • 1970-01-01
            • 1970-01-01
            • 2014-07-03
            相关资源
            最近更新 更多