【问题标题】:android development on options menu选项菜单上的android开发
【发布时间】:2012-01-24 06:42:20
【问题描述】:

我是使用 PhoneGap 进行 Android 开发的新手,我尝试通过 http://developer.android.com/guide/topics/ui/menus.html 的教程构建选项菜单,但它总是给出如下错误消息:

[2011-12-20 16:45:28 - HelloPhoneGap] W/ResourceType(23444):错误的 XML 块:标头大小 >84 或总大小 0 大于数据大小 0 [2011-12-20 16:45:28 - HelloPhoneGap] C:..\workspace\HelloPhoneGap\res\menu\menu.xml:3: >error: 错误: 找不到与给定名称匹配的资源(在'title ' 值 >'@string/new_game')。 [2011-12-20 16:45:28 - HelloPhoneGap] C:..\workspace\HelloPhoneGap\res\menu\menu.xml:5: >error: 错误: 没有找到与给定名称匹配的资源(在 'title ' 带有值 >'@string/help')。

这是控制台代码:

package com.phonegap.helloworld;

import android.os.Bundle;
import com.phonegap.*;

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

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.game_menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    case R.id.new_game:
        newGame();
        return true;
    case R.id.help:
        showHelp();
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}

@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
        if (keyCode == KeyEvent.KEYCODE_MENU) {
           return false;
       }else{
           return super.onKeyDown(keyCode, event);
       }

}

}

menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/new_game"
      android:title="@string/new_game" />
    <item android:id="@+id/help"
      android:title="@string/help" />
</menu>

有人告诉错误的原因吗?

非常感谢!


在 string.xml 中定义字符串后,错误消失了,但我遇到了如下新错误

KeyEvent cannot be resolved to a type   App.java    /HelloPhoneGap/src/com/phonegap/helloworld  line 39 Java Problem
KeyEvent cannot be resolved to a variable   App.java    /HelloPhoneGap/src/com/phonegap/helloworld  line 40 Java Problem
Menu cannot be resolved to a type   App.java    /HelloPhoneGap/src/com/phonegap/helloworld  line 17 Java Problem
MenuInflater cannot be resolved to a type   App.java    /HelloPhoneGap/src/com/phonegap/helloworld  line 18 Java Problem
MenuItem cannot be resolved to a type   App.java    /HelloPhoneGap/src/com/phonegap/helloworld  line 24 Java Problem

【问题讨论】:

    标签: android menu option


    【解决方案1】:

    似乎您缺少 /res/values/strings.xml 您的文本应该有字符串标签,例如:

    <string name="help">Help</string>
    <string name="new_game">New game</string>
    

    【讨论】:

    • 谢谢,错误消失了,但出现了新的错误信息,请参考我编辑的帖子
    【解决方案2】:

    您在strings.xml 字符串new_gamehelp 中的文件中似乎没有或有一些错误

    【讨论】:

      【解决方案3】:

      您必须在类似的值中定义字符串new_game

      <resources>
      <string name="new_game">Your String</string>
       <string name="help">Your String</string>
      </resources>
      

      参考this

      您可以创建值 xml 文件 - 如果您使用的是 eclipse 然后右键单击项目并选择其他并选择 android xml 文件,然后给定窗口选择资源类型作为值,

      【讨论】:

      • 谢谢,错误消失了,但是出现了新的错误信息,请参考我编辑的帖子
      猜你喜欢
      • 2011-05-26
      • 1970-01-01
      • 2021-09-07
      • 2012-07-20
      • 1970-01-01
      • 2017-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多