2016-02-10 106 views
0

我在主页上有一个editText。我希望键盘在应用程序启动时自动打开并专注于该editText。我尝试了很多我在互联网上找到的“解决方案”,但没有任何帮助。 键盘仍然不会自动出现。 顺便说一句,我EDITTEXT具有以下属性:当应用程序启动时自动弹出软件键盘

<EditText 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/editText" 
    android:gravity="left" 
    android:focusable="true" 
    android:enabled="true" 
    android:focusableInTouchMode="true" /> 

那么,如何使键盘自动出现?

回答

0

你必须做两件事(我刚刚测试过它工作得很好):

1:请求重点为该字段。 从活动的java文件,你可以做

mTextView = (EditText) findViewById(R.id.textView); 
    mTextView.requestFocus(); 

从XML文件,你可以重写你的元素如下:

<EditText android:id="@+id/textView"> 
    <requestFocus/> 
</EditText> 

2:展示活动时强制键盘:在onCreate方法只写这条线:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); 
+0

非常感谢!这件事真的对我有用。 由于请求关注活动,该应用程序继续崩溃。我只是删除了该行。现在,键盘弹出,它专注于EditText元素。 –

+0

我很高兴它帮助:)您可以标记响应,以便其他人可以看到它是工作方法。 –

0

添加android:windowSoftInputMode="stateAlwaysVisible“你activity标签在AndroidManifest.xml文件

<activity 
    android:name=".TestActivity" 
    android:windowSoftInputMode="stateAlwaysVisible" /> 

还可以使用requestFocus标签在EditText

<EditText 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/editText" 
    android:gravity="left" 
    android:focusable="true" 
    android:enabled="true" 
    android:focusableInTouchMode="true"> 
    <requestFocus /> 
</EditText> 
+0

@NikolayS你试过这个解决方案吗? –

+0

我仍然不明白为什么但这并没有帮助..我做的一切都完全按照你写的。 –

0

呼叫myeditText.requestFocus()初始化你对你的活动的布局后, onCreate()方法。

+0

它每次启动时都会导致应用程序崩溃。非常奇怪... –

+0

从xml布局中移除focusableInTouchMode,启用和可聚焦的属性。再次运行你的应用程序,如果它在这里崩溃评论和更新你的问题与错误日志 –

+0

是的,我试了一遍,它又崩溃了。对不起,这样一个愚蠢的问题,但我怎么得到错误日志? 顺便说一句,我在我的智能手机上运行应用程序。它也崩溃了另一个。 –

相关问题