2016-02-10 104 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

是的,我試了一遍,它又崩潰了。對不起,這樣一個愚蠢的問題,但我怎麼得到錯誤日誌? 順便說一句,我在我的智能手機上運行應用程序。它也崩潰了另一個。 –

相關問題