Android软键盘无法显示

时间:2016-01-23 02:02:57

标签: android

我正在尝试使用WebView编写一个小应用程序,Web视图加载一个URL,该URL反过来显示带有一个输入字段的HTML表单。我遇到的问题是当HTML输入字段具有焦点时,软键盘不会显示。

在我的MainActivity.java文件中,我有以下内容:

public class MainActivity extends AppCompatActivity {

String answer;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ConnectivityManager cm = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
    if (null != activeNetwork) {
        if(activeNetwork.getType() == ConnectivityManager.TYPE_WIFI)
            answer="You are connected to a WiFi Network";
        if(activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE)
            answer="You are connected to a Mobile Network";
    }
    else
        answer = "No internet Connectivity";

    Toast.makeText(getApplicationContext(), answer, Toast.LENGTH_LONG).show();


    WebView webView = (WebView)
            findViewById(R.id.webview);

    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);

    WebViewClientImpl webViewClient = new WebViewClientImpl(this);
    webView.setWebViewClient(webViewClient);

    webView.loadUrl("mydomain.com/index.php");



}
}

由于我对android完全不熟悉,我不确定我是否正确地执行此操作。我是否需要包含强制键盘显示的代码。我读了很多不同的帖子,我迷失了方向。

任何建议或指示都会很棒。

干杯。

1 个答案:

答案 0 :(得分:0)

enter image description here我认为webview并不专注。加载后使webview可聚焦。 将以下参数设置为XML视图和java代码中的webview。

XML: 将焦点参数设置为webview,如下所示。

<WebView
 android:id = "@+id/_webview"
 android:layout_width = "match_parent"
 android:layout_height = "match_parent"
 android:focusable = "true"
 android:focusableInTouchMode = "true">

Java: 正确设置webviewclient并请求焦点。

// put under onCreate
homeWebView.getSettings().setJavaScriptEnabled(true);
homeWebView.loadUrl("http://www.google.com"); // don't forget to prefix http://
homeWebView.setWebViewClient(new MyBrowser());
homeWebView.requestFocus(View.FOCUSABLES_ALL);


  private class MyBrowser extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
      view.loadUrl(url);
      return true;
    }
  }

注意:确保在Manifest中添加了Internet权限。如果没有此URL,则不会加载。

希望你做到了......祝你好运。!