您的位置:首页 > 移动开发 > Android开发

android 输入法弹出关闭与禁用

2015-12-16 10:07 561 查看
<pre name="code" class="java">


//应用启动后自动打开输入法

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
InputMethodManager  imm  =
(InputMethodManager)MainActivity.this.getSystemService(INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
Toast.makeText(MainActivity.this,  "show",
Toast.LENGTH_SHORT).show();
}
}, 1000);    //在一秒后打开
}


自动关闭:

InputMethodManager imm =
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);

禁止弹出:

查了一下Android SDK的说明,发现可以通过设置Activity的一个属性来解决这个问题,

比如可以在AndroidManifest.xml中这样写:

< activity android:name=".CategoryList"
android:label="@string/app_name"
android:windowSoftInputMode="stateVisible|adjustPan" >
< /activity >

<activity
android:name=".ClientSearchViewActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustUnspecified|stateHidden"
android:configChanges="orientation|keyboardHidden">
</activity>

//EditText有焦点阻止输入法弹出

editText.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
//记住 EditText的InputType现在是 password
int inType = editText.getInputType(); // backup the input type
editText.setInputType(InputType.TYPE_NULL); // disable soft input
editText.onTouchEvent(event); // call native handler
editText.setInputType(inType); // restore input type
editText.setSelection(editText.getText().length());
return true;
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: