2013-09-25 68 views
0

我有一個使用WebView的Android應用程序。除了小問題外,一切正常:WebView將Enter重要標題更改爲「Go」(或類似)不恰當。例如,有一個包含登錄表單的頁面。當用戶填寫表格中的文本輸入時,回車鍵變爲藍色「開始」。不幸的是,在某些語言環境中,這會翻譯爲「查找」/「搜索」。顯然它不適用。如何在Android中更改WebView輸入的輸入密鑰標題?

我怎麼能強制執行的WebView不要在softkeyboard裂傷Enter鍵名,或者將其改回爲默認

UPD/HINT:文件WebTextView.java包含setType方法,該方法使得它清楚如何web視圖處理關於IME的輸入。不幸的是,在許多情況下,代碼中的選擇變得無關緊要,並且沒有定製的方法。

回答

0

↵手段「到下一行」,它會顯示,如果你使用TEXTAREA或元素與CONTENTEDITABLE設置爲「真」。
您可以使用單行TEXTAREA(rows = 1)來實現此目的。
順便說一下,您無法通過更改IMEOptions來實現此目標,因爲WebView會根據各自的類型分別配置這些輸入元素。

+0

↵只是Enter鍵的默認表示法。正如我所提到的,我更願意將其更改爲更合適的字符串。基本上,你的答案的相關部分是「不,這是不可能的」。對? – Stan

+0

恐怕是這樣,web視圖發送建議imeoptions和的inputType(EditorInfo.IME_ACTION_NONE InputType.TYPE_CLASS_PHONE即EditorInfo.IME_ACTION_GO用於正常情況下,對於TEXTAREA,用於電話輸入類型)IME。 IME將基於這些建議來展示他們的UI(由每個IME供應商以不同方式實施)。除非您覆蓋並重寫WebView使用的整個InputConnection,否則幾乎不可能更改WebView建議的內容。 –

+0

似乎這確實是不可能的,沒有一些黑客(這是非常困難的,他們是毫無價值的嘗試)。不幸的是,這看起來像是Android設計中的一個bug,因爲,例如'input type =「password」'使Enter鍵顯示'Go'或甚至'搜索'(在某些語言環境中),這是完全不相關的。 – Stan

0

您可以通過調整IME選項來完成此操作。

例如:

((EditText)findViewById(R.id.your_field).setImeOptions(EditorInfo.IME_ACTION_DONE); 

會使它說 '完成'。您可以更改操作以使其執行不同的操作。

您還可以使用在XML佈局「imeOptions」屬性。

http://developer.android.com/reference/android/widget/TextView.html#attr_android:imeActionLabel

+0

我的問題是關於在Web頁面內使用'input'控件的WebView。 'R.id.your_field'沒有像EditText這樣的東西。 – Stan

+0

哦,我的錯誤,讀了那部分錯誤。我甚至沒有考慮WebView中的字段。我看到一些在HTML中使用'android:imeOptions'的引用......聽起來很瘋狂,它可以工作。 – Demonslay335