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中,但我无法解决。它对我不起作用,正如你所看到的,我在编辑的问题中添加了它,但它没有效果。。