当EditText设置为隐形android时,不显示软键盘

时间:2013-07-03 06:21:27

标签: android android-edittext android-softkeyboard

我正在做远程管理项目 我在移动屏幕上看到远程PC的屏幕但是要发送键盘事件我需要一个看不见的edittext和一个启用和禁用键盘的按钮 如果我删除edittext隐形它可以工作,但edittext显示在屏幕上我不想那样

这是代码

<EditText
     android:id="@+id/KeyBoard"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_gravity="right"
     android:focusable="true"
     android:inputType="textVisiblePassword"
     android:text=""
     android:visibility="invisible" >
</EditText>

通过将焦点设置在隐藏文本字段

来显示和隐藏键盘
public void keyClickHandler(View v) {
    EditText editText = (EditText) findViewById(R.id.KeyBoard);
    editText.requestFocus();
    InputMethodManager inputMgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    if (keyboard) {
        inputMgr.hideSoftInputFromWindow(editText.getWindowToken(), 0);
        keyboard = false;
    } else {
        inputMgr.showSoftInput(editText, InputMethodManager.SHOW_FORCED);
        keyboard = true;
    }
    Log.d("SET", "Foucs");
}

点击按钮时调用此方法 如果我从android:visibility="invisible"移除edittext,那么它可以正常工作

2 个答案:

答案 0 :(得分:3)

你的意思是隐藏它吗?

你可以使用:

editText.setVisibility(View.GONE);

editText.setVisibility(View.INVISIBLE);

修改

试试这个:

editText.setBackgroundColor(color.transparent);

答案 1 :(得分:1)

另一种“隐藏”EditText的简单方法是将其高度/宽度设置为0dp,如下所示,以便用户看不到它。

            android:layout_width="match_parent"
            android:layout_height="0dp"