私の電話でメニューボタンがクリックされたときに表示されるカスタムメニューを取得しようとしています。まったく表示されません。
このフォルダー /res/drawable に register.png という名前の登録アイコンがあります。/res/menu というフォルダーに my_menu.xml があります。フォルダーのレイアウトが間違っていましたか、それとも以下のコードに何か問題がありますか。
menu.xml の名前を my_menu.xml に変更しました。コードを変更したところ、次のエラーが発生しました。
[2012-04-07 07:50:43 - HelloWebView] W/ResourceType(1560): 不正な XML ブロック: ルート要素ノードが見つかりません [2012-04-07 07:50:43 - HelloWebView] C:\Users\josh \workspace\HelloWebView\res\menu\my_menu.xml:4: エラー: パッケージ 'android' の属性 'showAsAction' のリソース識別子が見つかりません
my_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/register"
android:icon="@drawable/register"
android:title="@string/register"
android:showAsAction="ifRoom"/>
</menu>
メインアプリ
public class HelloWebViewActivity extends Activity {
WebView mWebView;
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://www.Google.com");
mWebView.setWebViewClient(new HelloWebViewClient());
}
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);}
@Override
public boolean onCreateOptionsMenu(Menu my_menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, my_menu);
return true;
}
}