以编程方式隐藏/显示Android软键盘
首先,我已经看到了这个帖子。我试过那里接受的方法..但没有什么对我有用..
我的应用程序中有两个屏幕。
第一个有2个EditText - 一个用于用户名,一个用于密码
第二个有一个ListView和一个EditText - 来过滤listView
在我的第一个屏幕中,我希望用户名EditText专注于启动,键盘应该是可见的 ..这是我的实现(通过删除不必要/不相关的代码简化)..
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="20dip" android:paddingRight="20dip"> <EditText android:id="@+id/username" android:singleLine="true" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="Username" android:imeOptions="actionDone" android:inputType="text" android:maxLines="1"/> <EditText android:id="@+id/password" android:password="true" android:singleLine="true" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="Password" /></LinearLayout>
class AppLogin extends Activity{ private EditText mUserNameEdit = null; private EditText mPasswordEdit = null; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.app_login); mUserNameEdit = (EditText) findViewById(R.id.username); mPasswordEdit = (EditText) findViewById(R.id.password); /* code to show keyboard on startup.this code is not working.*/ InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(mUserNameEdit, InputMethodManager.SHOW_IMPLICIT); }//End of onCreate()}
好吧,键盘在启动时没有显示。我的设计非常需要键盘。
现在到第二页 .. 我已经说过我有一个listView和EditText那里.. 我希望我的键盘在启动时隐藏,只有在用户触摸editText时出现 ..你能相信吗?无论我尝试什么软键盘在我加载活动时显示 ..我无法隐藏它。
简化
在登录页面(第一页)我希望我的键盘在启动时可见。
在SecondPage上我希望首先隐藏键盘,仅在用户触摸editText时显示
而且我的问题是我在两种情况下正好相反 ...希望有人在此之前遇到过这个问题。我正在模拟器和HTC Desire手机上进行测试。
德玛西亚99