我正在尝试使用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完全不熟悉,我不确定我是否正确地执行此操作。我是否需要包含强制键盘显示的代码。我读了很多不同的帖子,我迷失了方向。
任何建议或指示都会很棒。
干杯。
答案 0 :(得分:0)
我认为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,则不会加载。
希望你做到了......祝你好运。!