我浏览过类似的问题,并按照上面的建议,但对于上帝的爱,我无法得到这个工作,这让我疯狂。所以这里的交易:在程序启动时没有显示软键盘
我有一个editText,需要requestFocus在程序启动,并弹出软键盘。如果我在Manifest中放置了“android:windowSoftInputMode =”stateVisible“,那么每次活动开始时都会显示keboard,我只希望它用onCreate()显示一次,并且当用户专门点击editText时。低于:
EditText argument;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_radio_buttons);
argument = (EditText) findViewById(R.id.editText_argument);
InputMethodManager imm = InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(argument, InputMethodManager.SHOW_FORCED);
Q1)这个代码不工作我在做什么错
Q2)你看,我宣布 “的EditText参数” 的onCreate(外),因为我? 'd喜欢在其余的活动中使用它,而不仅仅是在onCreate()中。这是不错的编程练习吗?
Q3)然后,当用户在软键盘上点击完成时,我希望EditText失去焦点,即光标应该消失。我知道我需要有一个虚拟视图来做到这一点,但我仍然不完全明白如何将焦点转换到虚拟视图。我会怎么做呢?
非常感谢!
我试着添加'editText.requestFocus()',但它不起作用:( – cartonn 2012-08-04 15:07:38
请参阅编辑代码片段。 – 2012-08-04 15:10:45
我得到这个错误:“new Runnable(){}类型的run()方法必须重载超类方法”。我最终删除了“@Override”,现在它可以工作。什么是重写? – cartonn 2012-08-04 15:20:04