试图建立在Android菜单项链接 [英] Trying to create menu item links on android
问题描述
不能让它链接到网页。 重置和关于应该做的。使用web视图。需要链接到网页视图中打开。
Can't get it to link to webpages. "Reset" and "About" should do. Using webview. Need for the links to open within the webview.
这里的MainActivity.java:
here's the MainActivity.java:
package com.test.apppackage;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
public class MainActivity extends Activity {
private WebView mWebview ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebview = new WebView(this);
mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript
final Activity activity = this;
mWebview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
}
});
mWebview .loadUrl("https://www.google.com");
setContentView(mWebview );
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch(id) {
case android.R.id.menu_reset:
mWebview .loadUrl("https://www.bbc.co.uk");
setContentView(mWebview );
break;
}
return super.onOptionsItemSelected(item);
}
public class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
}
这里的活动的main.xml文件
here's the activity main.xml file
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_reset"
android:title="@string/menu_reset"
android:showAsAction="ifRoom"
/>
<item
android:id="@+id/menu_about"
android:title="@string/menu_about"
android:showAsAction="never"
/></menu>
这里的strings.xml档案
here's the strings.xml file
<?xml version="1.0" encoding="utf-8"?>
<string name="app_name">App name</string>
<string name="menu_reset">Reset</string>
<string name="menu_about">About app</string>
推荐答案
您混淆android.R和R
You are confusing android.R and R
您的项目被称为 @ + ID / menu_reset
,这是在 com.test.apppackage.R.java $ C创建$ C>文件。
Your items are called @+id/menu_reset
, which is created in your com.test.apppackage.R.java
file.
但你以后比较 android.R.id.menu_reset
,这将是android.R.id,但并不存在。
But you are later comparing to android.R.id.menu_reset
, which would be in android.R.id, but doesn't exist.
您需要在这种情况下,仅使用您的R.java。使用 com.test.apppackage.R.id.menu_reset
。
You need to use only your R.java in this case. Use com.test.apppackage.R.id.menu_reset
.
在某些情况下,你可以使用Android的价值,但无论如何混合将无法工作。
In some cases, you can use android values, but anyway mixing won't work.
显然,android.R.menu_reset甚至不存在。
apparently, android.R.menu_reset doesn't even exist
研究实际上是R.id,当然
R is actually R.id, of course
这篇关于试图建立在Android菜单项链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!