Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果EditText不为空,则隐藏软件键盘_Android_Android Edittext_Android Keypad_Android Input Method - Fatal编程技术网

Android 如果EditText不为空,则隐藏软件键盘

Android 如果EditText不为空,则隐藏软件键盘,android,android-edittext,android-keypad,android-input-method,Android,Android Edittext,Android Keypad,Android Input Method,当登录活动加载的EditText中已经填充了SharedReferences数据时,我试图隐藏软件键盘 <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:padding="10dip" > <LinearLayout android:

当登录活动加载的
EditText
中已经填充了
SharedReferences
数据时,我试图隐藏软件键盘

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dip" >

    <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

        <!--  View Title Label -->
        <TextView
            android:layout_width="0dp"
            android:layout_weight="2"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dip"
            android:text="LOGIN"
            android:textSize="25dip"
            android:textStyle="bold"
            android:textColor="#FFF" />

        <Button
            android:id="@+id/btnLinkToRegisterScreen"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.37"
            android:background="#900099CC"
            android:text="Registrazione"
            android:textColor="#FFF"
            android:textStyle="bold" />

    </LinearLayout>

    <!--  Email Label -->
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Email o username" 
        android:textColor="#FFF" />

    <View 
        android:layout_width="fill_parent"
        android:layout_height="1dp"       
        android:background="#FFF" />

    <!--  Email TextField -->
    <EditText
        android:id="@+id/loginEmail"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="text"
        android:windowSoftInputMode="stateHidden"
        android:imeOptions="actionNext"
        android:background="#97FFFFFF"
        android:padding="5dp"
        android:layout_marginTop="5dp"/>

    <!--  Password Label -->
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Password" 
        android:textColor="#FFF"/>

    <View 
        android:layout_width="fill_parent"
        android:layout_height="1dp"       
        android:background="#FFF" />

    <!--  Password TextField -->
    <EditText
        android:id="@+id/loginPassword"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:background="#97FFFFFF"
        android:padding="5dp"
        android:layout_marginTop="5dp"  />

    <CheckBox
        android:id="@+id/chkPref"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#FFFFFF"
        android:background="#80FFFFFF"
        android:text="Salva dati di accesso"
        android:checked="true"
        android:padding="5dp" 
        android:layout_marginTop="15dp"/>

    <!--  Login Button -->
    <Button
        android:id="@+id/btnLogin"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Login"
        android:textColor="#FFF"
        android:background="#97000066" />

    </LinearLayout>

</ScrollView>
我尝试了在其他问题中找到的代码,但它不起作用:

if(inputEmail.getText().toString().trim() != null){
    InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    inputManager.hideSoftInputFromWindow(inputEmail.getWindowToken(),0);
}
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dip" >

    <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

        <!--  View Title Label -->
        <TextView
            android:layout_width="0dp"
            android:layout_weight="2"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dip"
            android:text="LOGIN"
            android:textSize="25dip"
            android:textStyle="bold"
            android:textColor="#FFF" />

        <Button
            android:id="@+id/btnLinkToRegisterScreen"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.37"
            android:background="#900099CC"
            android:text="Registrazione"
            android:textColor="#FFF"
            android:textStyle="bold" />

    </LinearLayout>

    <!--  Email Label -->
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Email o username" 
        android:textColor="#FFF" />

    <View 
        android:layout_width="fill_parent"
        android:layout_height="1dp"       
        android:background="#FFF" />

    <!--  Email TextField -->
    <EditText
        android:id="@+id/loginEmail"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="text"
        android:windowSoftInputMode="stateHidden"
        android:imeOptions="actionNext"
        android:background="#97FFFFFF"
        android:padding="5dp"
        android:layout_marginTop="5dp"/>

    <!--  Password Label -->
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Password" 
        android:textColor="#FFF"/>

    <View 
        android:layout_width="fill_parent"
        android:layout_height="1dp"       
        android:background="#FFF" />

    <!--  Password TextField -->
    <EditText
        android:id="@+id/loginPassword"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:background="#97FFFFFF"
        android:padding="5dp"
        android:layout_marginTop="5dp"  />

    <CheckBox
        android:id="@+id/chkPref"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#FFFFFF"
        android:background="#80FFFFFF"
        android:text="Salva dati di accesso"
        android:checked="true"
        android:padding="5dp" 
        android:layout_marginTop="15dp"/>

    <!--  Login Button -->
    <Button
        android:id="@+id/btnLogin"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Login"
        android:textColor="#FFF"
        android:background="#97000066" />

    </LinearLayout>

</ScrollView>
你能给我一些解决这个问题的建议吗

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dip" >

    <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

        <!--  View Title Label -->
        <TextView
            android:layout_width="0dp"
            android:layout_weight="2"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dip"
            android:text="LOGIN"
            android:textSize="25dip"
            android:textStyle="bold"
            android:textColor="#FFF" />

        <Button
            android:id="@+id/btnLinkToRegisterScreen"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.37"
            android:background="#900099CC"
            android:text="Registrazione"
            android:textColor="#FFF"
            android:textStyle="bold" />

    </LinearLayout>

    <!--  Email Label -->
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Email o username" 
        android:textColor="#FFF" />

    <View 
        android:layout_width="fill_parent"
        android:layout_height="1dp"       
        android:background="#FFF" />

    <!--  Email TextField -->
    <EditText
        android:id="@+id/loginEmail"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="text"
        android:windowSoftInputMode="stateHidden"
        android:imeOptions="actionNext"
        android:background="#97FFFFFF"
        android:padding="5dp"
        android:layout_marginTop="5dp"/>

    <!--  Password Label -->
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Password" 
        android:textColor="#FFF"/>

    <View 
        android:layout_width="fill_parent"
        android:layout_height="1dp"       
        android:background="#FFF" />

    <!--  Password TextField -->
    <EditText
        android:id="@+id/loginPassword"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:background="#97FFFFFF"
        android:padding="5dp"
        android:layout_marginTop="5dp"  />

    <CheckBox
        android:id="@+id/chkPref"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#FFFFFF"
        android:background="#80FFFFFF"
        android:text="Salva dati di accesso"
        android:checked="true"
        android:padding="5dp" 
        android:layout_marginTop="15dp"/>

    <!--  Login Button -->
    <Button
        android:id="@+id/btnLogin"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Login"
        android:textColor="#FFF"
        android:background="#97000066" />

    </LinearLayout>

</ScrollView>
编辑:这是我的XML布局:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dip" >

    <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

        <!--  View Title Label -->
        <TextView
            android:layout_width="0dp"
            android:layout_weight="2"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dip"
            android:text="LOGIN"
            android:textSize="25dip"
            android:textStyle="bold"
            android:textColor="#FFF" />

        <Button
            android:id="@+id/btnLinkToRegisterScreen"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.37"
            android:background="#900099CC"
            android:text="Registrazione"
            android:textColor="#FFF"
            android:textStyle="bold" />

    </LinearLayout>

    <!--  Email Label -->
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Email o username" 
        android:textColor="#FFF" />

    <View 
        android:layout_width="fill_parent"
        android:layout_height="1dp"       
        android:background="#FFF" />

    <!--  Email TextField -->
    <EditText
        android:id="@+id/loginEmail"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="text"
        android:windowSoftInputMode="stateHidden"
        android:imeOptions="actionNext"
        android:background="#97FFFFFF"
        android:padding="5dp"
        android:layout_marginTop="5dp"/>

    <!--  Password Label -->
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Password" 
        android:textColor="#FFF"/>

    <View 
        android:layout_width="fill_parent"
        android:layout_height="1dp"       
        android:background="#FFF" />

    <!--  Password TextField -->
    <EditText
        android:id="@+id/loginPassword"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:background="#97FFFFFF"
        android:padding="5dp"
        android:layout_marginTop="5dp"  />

    <CheckBox
        android:id="@+id/chkPref"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#FFFFFF"
        android:background="#80FFFFFF"
        android:text="Salva dati di accesso"
        android:checked="true"
        android:padding="5dp" 
        android:layout_marginTop="15dp"/>

    <!--  Login Button -->
    <Button
        android:id="@+id/btnLogin"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Login"
        android:textColor="#FFF"
        android:background="#97000066" />

    </LinearLayout>

</ScrollView>

这是代码,希望对你有帮助

您应该用以下行替换隐藏键盘代码:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dip" >

    <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

        <!--  View Title Label -->
        <TextView
            android:layout_width="0dp"
            android:layout_weight="2"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dip"
            android:text="LOGIN"
            android:textSize="25dip"
            android:textStyle="bold"
            android:textColor="#FFF" />

        <Button
            android:id="@+id/btnLinkToRegisterScreen"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.37"
            android:background="#900099CC"
            android:text="Registrazione"
            android:textColor="#FFF"
            android:textStyle="bold" />

    </LinearLayout>

    <!--  Email Label -->
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Email o username" 
        android:textColor="#FFF" />

    <View 
        android:layout_width="fill_parent"
        android:layout_height="1dp"       
        android:background="#FFF" />

    <!--  Email TextField -->
    <EditText
        android:id="@+id/loginEmail"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="text"
        android:windowSoftInputMode="stateHidden"
        android:imeOptions="actionNext"
        android:background="#97FFFFFF"
        android:padding="5dp"
        android:layout_marginTop="5dp"/>

    <!--  Password Label -->
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Password" 
        android:textColor="#FFF"/>

    <View 
        android:layout_width="fill_parent"
        android:layout_height="1dp"       
        android:background="#FFF" />

    <!--  Password TextField -->
    <EditText
        android:id="@+id/loginPassword"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:background="#97FFFFFF"
        android:padding="5dp"
        android:layout_marginTop="5dp"  />

    <CheckBox
        android:id="@+id/chkPref"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#FFFFFF"
        android:background="#80FFFFFF"
        android:text="Salva dati di accesso"
        android:checked="true"
        android:padding="5dp" 
        android:layout_marginTop="15dp"/>

    <!--  Login Button -->
    <Button
        android:id="@+id/btnLogin"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Login"
        android:textColor="#FFF"
        android:background="#97000066" />

    </LinearLayout>

</ScrollView>
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
现在会有帮助的

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dip" >

    <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

        <!--  View Title Label -->
        <TextView
            android:layout_width="0dp"
            android:layout_weight="2"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dip"
            android:text="LOGIN"
            android:textSize="25dip"
            android:textStyle="bold"
            android:textColor="#FFF" />

        <Button
            android:id="@+id/btnLinkToRegisterScreen"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.37"
            android:background="#900099CC"
            android:text="Registrazione"
            android:textColor="#FFF"
            android:textStyle="bold" />

    </LinearLayout>

    <!--  Email Label -->
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Email o username" 
        android:textColor="#FFF" />

    <View 
        android:layout_width="fill_parent"
        android:layout_height="1dp"       
        android:background="#FFF" />

    <!--  Email TextField -->
    <EditText
        android:id="@+id/loginEmail"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="text"
        android:windowSoftInputMode="stateHidden"
        android:imeOptions="actionNext"
        android:background="#97FFFFFF"
        android:padding="5dp"
        android:layout_marginTop="5dp"/>

    <!--  Password Label -->
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Password" 
        android:textColor="#FFF"/>

    <View 
        android:layout_width="fill_parent"
        android:layout_height="1dp"       
        android:background="#FFF" />

    <!--  Password TextField -->
    <EditText
        android:id="@+id/loginPassword"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:background="#97FFFFFF"
        android:padding="5dp"
        android:layout_marginTop="5dp"  />

    <CheckBox
        android:id="@+id/chkPref"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#FFFFFF"
        android:background="#80FFFFFF"
        android:text="Salva dati di accesso"
        android:checked="true"
        android:padding="5dp" 
        android:layout_marginTop="15dp"/>

    <!--  Login Button -->
    <Button
        android:id="@+id/btnLogin"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Login"
        android:textColor="#FFF"
        android:background="#97000066" />

    </LinearLayout>

</ScrollView>

Cheers

检查
trim()
的结果是否为空字符串,而不是
null

使用android:WindowsOfInputMode=“stateHidden”隐藏键盘

隐藏软键盘请尝试使用:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dip" >

    <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

        <!--  View Title Label -->
        <TextView
            android:layout_width="0dp"
            android:layout_weight="2"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dip"
            android:text="LOGIN"
            android:textSize="25dip"
            android:textStyle="bold"
            android:textColor="#FFF" />

        <Button
            android:id="@+id/btnLinkToRegisterScreen"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.37"
            android:background="#900099CC"
            android:text="Registrazione"
            android:textColor="#FFF"
            android:textStyle="bold" />

    </LinearLayout>

    <!--  Email Label -->
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Email o username" 
        android:textColor="#FFF" />

    <View 
        android:layout_width="fill_parent"
        android:layout_height="1dp"       
        android:background="#FFF" />

    <!--  Email TextField -->
    <EditText
        android:id="@+id/loginEmail"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="text"
        android:windowSoftInputMode="stateHidden"
        android:imeOptions="actionNext"
        android:background="#97FFFFFF"
        android:padding="5dp"
        android:layout_marginTop="5dp"/>

    <!--  Password Label -->
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Password" 
        android:textColor="#FFF"/>

    <View 
        android:layout_width="fill_parent"
        android:layout_height="1dp"       
        android:background="#FFF" />

    <!--  Password TextField -->
    <EditText
        android:id="@+id/loginPassword"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:background="#97FFFFFF"
        android:padding="5dp"
        android:layout_marginTop="5dp"  />

    <CheckBox
        android:id="@+id/chkPref"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#FFFFFF"
        android:background="#80FFFFFF"
        android:text="Salva dati di accesso"
        android:checked="true"
        android:padding="5dp" 
        android:layout_marginTop="15dp"/>

    <!--  Login Button -->
    <Button
        android:id="@+id/btnLogin"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Login"
        android:textColor="#FFF"
        android:background="#97000066" />

    </LinearLayout>

</ScrollView>
/**
     * Hides Soft Keyboard displayed by currently focused EditText
     * 
     * @param pEditText EditText currenly focused EditText
     */
    protected void hideSoftKeyboard( EditText pEditText )
    {
        InputMethodManager lInputMethodManager = (InputMethodManager) pEditText.getContext().getSystemService( Context.INPUT_METHOD_SERVICE );
        lInputMethodManager.hideSoftInputFromWindow( pEditText.getWindowToken() , 0 );
    }

您是否正在强制在其他地方显示软键盘?我认为它不应该单独出现。在trimminI向您的问题添加了一个“不是”后,在logcat中显示值,因为您似乎错过了它(否则它将意味着与您的问题主文本完全相反)@Zozelfefefo我检查了,但在xml或java代码中,我都没有强制键盘出现。@Condor我编辑了以前的解决方案。现在应该有帮助了。如果我在Logcat中打印变量值,它是一个空字符串。我将条件更改为“某物!”“但它也不起作用!条件有效,我已经测试过了。我认为问题出在InputMethodManager中,但我无法解决。它对我不起作用,正如你所看到的,我在编辑的问题中添加了它,但它没有效果。。