100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > android 禁止软键盘弹出自动弹出 [android] activity“阻止自动弹出软键盘”的方法

android 禁止软键盘弹出自动弹出 [android] activity“阻止自动弹出软键盘”的方法

时间:2020-06-24 00:32:23

相关推荐

android 禁止软键盘弹出自动弹出 [android] activity“阻止自动弹出软键盘”的方法

activity 第一个获取焦点的组件是 EditText 时,开启这个activity 时就会自动弹出软键盘。

今天设计的程序不想要自动弹出,于是照了相关资料,但是尝试了半天都不好使,让本人很郁闷,

最后的最后,终于找到了根源所在:

我的activity是Tab页签下的~!

所以应把代码加在继承于TabActivity的那个activity中!!而不是由点击Tab页启动的那个activity~

android:name=".MyTabActivity"

android:label="@string/app_name"

android:windowSoftInputMode="stateHidden"

/>

这样就成功了~!

—————————————————————————————————————————————————

时隔半年,又遇到Tab页中有的Activity需要弹出键盘,有的Activity需要隐藏掉的情况,

这次用的是在Activity中加代码的方法,先看下代码在结束原因吧!

public class xxxActivity extends Activity {

protected void onCreate(Bundle

savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.input_camera_activity);

}

@Override

protected void onResume() {

super.onResume();

HideKeyboard();//隐藏键盘}

//隐藏键盘

private void HideKeyboard() {new

Timer().schedule(new TimerTask()

{

@Override

public void

run()

{InputMethodManager

manager =

((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE));

manager.hideSoftInputFromWindow(

InputCameraActivity.this.getCurrentFocus().getWindowToken(),

InputMethodManager.HIDE_NOT_ALWAYS

);

}

},

10);}

}

这个xxxActivity 是Tab页中的一个Activity,它想要隐藏掉软键盘,

1.开启线程延时的原因是:如果在Create方法中就直接关闭软键盘会报错,意思是Activity窗口没有初始化完,不可以进行诸如此类的操作。于是延时一小会儿,再执行隐藏软键盘的代码,就可以了。注意,即使不是在Tab相关的Activity中,也是这样!!

2.写在Resume()中的原因是,Tab页切换时不是从Activity的OnCreate()方法重新执行,所以为保证每次切换到该Activity时都能隐藏掉软键盘,所以要在OnResume()中写。

————————————————————————————————————————

一般情况下(不是Tab的)据说有以下几种方法:

1、//隐藏软键盘

((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(),

InputMethodManager.HIDE_NOT_ALWAYS);

2、//显示软键盘,控件ID可以是EditText,TextView

((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).showSoftInput(控件ID,0);

3、不自动弹出键盘:

带有EditText控件的在第一次显示的时候会自动获得focus,并弹出键盘,如果不想自动弹出键盘,有两种方法:

方法一:在mainfest文件中把对应的activity设置

android:windowSoftInputMode="stateHidden"

或者android:windowSoftInputMode="stateUnchanged"。

方法二:可以在布局中放一个隐藏的TextView,然后在onCreate的时候requsetFocus。

注意TextView不要设置Visiable=gone,否则会失效

,可以在布局中放一个隐藏的TextView,然后在onCreate的时候requsetFocus。

注意TextView不要设置Visiable=gone,否则会失效

android:id="@+id/text_notuse"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:focusable="true"

android:focusableInTouchMode="true"

/>

TextView textView =

(TextView)findViewById(R.id.text_notuse);

textView.requestFocus();

android 禁止软键盘弹出自动弹出 [android]activity“阻止自动弹出软键盘”的方法-尤其是对于Tab页下的!...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。