Android强制弹出,隐藏输入法.

原文地址为: Android强制弹出,隐藏输入法.

当我们弹出一个Dialog时候,如果这个Dialog需要输入数据,然后确定后又需要关闭输入法,一般系统的hide,跟show方法总会有各种问题,最霸道的解决方法就是写一个定时器,定时弹出或者关闭输入法。

import java.util.Timer;
import java.util.TimerTask;
import android.content.Context;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;

public class InputTools {

//隐藏虚拟键盘
public static void HideKeyboard(View v)
{
InputMethodManager imm
= ( InputMethodManager ) v.getContext( ).getSystemService( Context.INPUT_METHOD_SERVICE );
if ( imm.isActive( ) ) {
imm.hideSoftInputFromWindow( v.getApplicationWindowToken( ) ,
0 );

}
}

//显示虚拟键盘
public static void ShowKeyboard(View v)
{
InputMethodManager imm
= ( InputMethodManager ) v.getContext( ).getSystemService( Context.INPUT_METHOD_SERVICE );

imm.showSoftInput(v,InputMethodManager.SHOW_FORCED);

}

//强制显示或者关闭系统键盘
public static void KeyBoard(final EditText txtSearchKey,final String status)
{

Timer timer
= new Timer();
timer.schedule(
new TimerTask(){
@Override
public void run()
{
InputMethodManager m
= (InputMethodManager)
txtSearchKey.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if(status.equals("open"))
{
m.showSoftInput(txtSearchKey,InputMethodManager.SHOW_FORCED);
}
else
{
m.hideSoftInputFromWindow(txtSearchKey.getWindowToken(),
0);
}
}
},
300);
}

//通过定时器强制隐藏虚拟键盘
public static void TimerHideKeyboard(final View v)
{
Timer timer
= new Timer();
timer.schedule(
new TimerTask(){
@Override
public void run()
{
InputMethodManager imm
= ( InputMethodManager ) v.getContext( ).getSystemService( Context.INPUT_METHOD_SERVICE );
if ( imm.isActive( ) )
{
imm.hideSoftInputFromWindow( v.getApplicationWindowToken( ) ,
0 );
}
}
},
10);
}
//输入法是否显示着
public static boolean KeyBoard(EditText edittext)
{
boolean bool = false;
InputMethodManager imm
= ( InputMethodManager ) edittext.getContext( ).getSystemService( Context.INPUT_METHOD_SERVICE );
if ( imm.isActive( ) )
{
bool
= true;
}
return bool;

}
}

 


转载请注明本文地址: Android强制弹出,隐藏输入法.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android手机的输入法弹出时,可能有以下几个原因: 1. 输入法未启用:首先要确保输入法已经启用。可以在手机设置中的“语言和输入法”或“键盘和输入法”中查看所有安装的输入法,并选择需要使用的输入法。如果没有检测到要使用的输入法,可以尝试下载并安装相应的输入法应用程序。 2. 输入法未被选中:在应用程序中,点击文本输入框时,可能需要手动选择要使用的输入法。通过长按文本输入框,会弹出选项菜单,选择“输入法”并选择需要使用的输入法。 3. 输入法冲突:如果安装了多个输入法,可能会出现输入法冲突的情况,导致输入法无法弹出。可以尝试禁用除需要使用的输入法外的其他输入法,然后重新启动手机。 4. 软件冲突:某些应用程序可能与输入法软件存在冲突,导致无法弹出输入法。可以尝试卸载最近安装的应用程序,或在应用管理器中找到相关应用程序并清除其缓存数据。 5. 系统问题:偶尔,系统中的某些错误可能导致输入法无法弹出。可以尝试重启手机,以解决可能存在的临时问题。如果问题依然存在,可以考虑进行硬件重置或寻求专业技术支持。 总而言之,可以通过检查输入法的启用状态、选中输入法、解决输入法冲突、处理软件冲突、重启手机等方法来解决Android手机输入法弹出的问题。如果问题仍然无法解决,建议寻求专业技术支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值