разработка Android в меню настроек - PullRequest
2 голосов
/ 20 декабря 2011

Я новичок в разработке Android с помощью PhoneGap, я пытаюсь создать меню опций с помощью учебника из 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:> ошибка: ошибка: не найден ресурс, соответствующий данному имени (в заголовке) 'со значением>' @ string / new_game '). [2011-12-20 16:45:28 - HelloPhoneGap] C: .. \ workspace \ HelloPhoneGap \ res \ menu \ menu.xml: 5:> ошибка: ошибка: не найден ресурс, соответствующий указанному имени (в заголовке) 'со значением>' @ 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

Ответы [ 3 ]

1 голос
/ 20 декабря 2011

у вас должно быть определение Strings new_game в таких значениях, как

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

ссылка this

Вы можете создать значения xml-файла - если вы используете eclipse затемщелкните правой кнопкой мыши на проекте и выберите другой, а затем выберите Android-файл XML, затем в данном окне выберите тип ресурса в качестве значения,

1 голос
/ 20 декабря 2011

Похоже, вам не хватает вашего /res/values/strings.xml Для ваших текстов должны быть строковые теги, такие как:

<string name="help">Help</string>
<string name="new_game">New game</string>
0 голосов
/ 20 декабря 2011

Похоже, у вас нет или есть ошибки в strings.xml файле в строках new_game и help

...