2014-07-23 29 views
0

我有一個使用webview的android應用程序。 我使用的幾種形式在第一個元素上有自動對焦。 我想要的是在窗體加載時顯示相關的鍵盤。活動中的代碼是:在webview的自動對焦顯示鍵盤

public class MyActivity extends DroidGap { 
/** 
* Called when the activity is first created. 
*/ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //load the main app 
    loadUrl("file:///android_asset/www/index.html"); 
} 

@Override 
public void init() { 
    final String version = getVersion(); 
    CordovaWebView webView = new CordovaWebView(this); 
    init(webView, new CordovaWebViewClient(this, webView) { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      super.onPageFinished(view, url); 
      boolean redirected = false; 
      //If the page you're accessing is the login page 
      if (url.endsWith("/Login")) { 
       //redirect to root page with query string 
       appView.loadUrl(url + "?version=" + version)); 
       redirected = true; 
      } 

      return redirected; 
     } 
    }, new CordovaChromeClient(this, webView)); 
    } 
} 

基本上,加載了應用程序索引頁上方代碼中發生的事情。當我點擊登錄按鈕時,應用程序版本被追加到加載的url(原因無關)並顯示登錄頁面。 當頁面加載時,我可以看到字段內的光標,但鍵盤將不會顯示,直到我按下該字段。

我看過this question但無法弄清楚如何應用答案。 任何幫助非常感謝你。

回答

0

我結束了使用

   @Override 
       public void onPageFinished(WebView view, String url) { 
        super.onPageFinished(view, url); 
        // Display the keyboard automatically when relevant 
        if (view.getTitle().equals("Login")) { 
         InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
         imm.showSoftInput(view, 0); 
        } 
       } 
相關問題