【问题标题】:hide cursor from editText when soft keyboard is hidden隐藏软键盘时从editText隐藏光标
【发布时间】:2014-12-13 20:58:07
【问题描述】:

这是我的第一个应用程序,当我按下后退按钮并且软件键盘消失时,我试图找到一种从编辑框中删除光标的方法。我试图检查是否按下了后退按钮,但这只有在键盘打开时按两次后退按钮才有效。

以下是我的代码示例,其中包含 editText 和后退按钮检查:

public class MainActivity extends Activity implements OnItemSelectedListener, OnGlobalLayoutListener
{
    boolean flag;
    double vc, vs, t, r, c;
    EditText resistor_E_T;

@Override
public void onBackPressed()
{
    resistor_E_T.setCursorVisible( false );
}


@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    resistor_E_T = ( EditText ) findViewById( R.id.resistor_Edit_Text );
    resistor_E_T.addTextChangedListener( new TextWatcher( )
    {
        public void afterTextChanged( Editable s ) 
        {
            resistor_E_T.setCursorVisible( true );
            if ( Exceptions.isDouble( resistor_E_T.getText( ).toString( ) ) )
            {
                r = Double.parseDouble( resistor_E_T.getText( ).toString( ) );
            }
        }

        public void beforeTextChanged( CharSequence s, int start, int count, int after ) { }

        public void onTextChanged( CharSequence s, int start, int before, int count ) { }
   });

另外,我在互联网和 stackoverflow 上发现了杂项代码,这些代码检查键盘是否通过像素启动,但我无法使任何代码工作。有谁知道我该怎么做,否则这是不可能的。

现在会发生什么: http://i.stack.imgur.com/6alGK.png

当软键盘消失时光标还在闪烁: http://i.stack.imgur.com/wpbkl.png

【问题讨论】:

  • 找到解决方案了吗?

标签: android android-edittext


【解决方案1】:

使用这个:-

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

或者你可以在你的 xml 中使用它:

android:windowSoftInputMode="stateHidden"

请让我知道它是否有效:)

【讨论】:

  • 我将 android:windowSoftInputMode="stateHidden" 放在 标记中的 xml 上,但没有任何变化。我把它放在 标签上,但没有再出现。最后,我插入此代码“getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);”在 MainActivity 类的编辑文本中,但没有解决问题,并且它还禁用了单击后退按钮的功能(如果软键盘关闭),您可以将应用程序移至后台。
  • 把 android:windowSoftInputMode="stateHidden" 放在 xml 父布局上而不是编辑文本......
  • 或将此代码放在创建方法中.."getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS‌​_HIDDEN);"
  • 我在 XML 上插入命令,但什么也没有 schemas.android.com/apk/res/android" xmlns:tools="schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="top" android:windowSoftInputMode="stateHidden" 我把这个 this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);什么都没有了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
  • 2013-12-06
  • 1970-01-01
  • 2021-05-22
  • 2014-08-07
相关资源
最近更新 更多