0

我正在阅读 Reto Meier 精彩的 Professional Android 4 Application Development 中的第一个 TodoList 示例,但是遇到了一个小问题,我无法解决。这是代码:

package com.paad.todolist;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.EditText;
import android.widget.ListView;

public class ToDoListActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_to_do_list);

        // Get references to UI widgets
        ListView myListView = (ListView) findViewById(R.id.myListView);
        final EditText myEditText = (EditText) findViewById(R.id.myEditText);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_to_do_list, menu);
        return true;
    }
}

这与使用 main.xml 的书略有不同。后面的 Eclipse 会创建 activity_to_do_list.xml,它的内容与本书相同。

我最初的问题是 R.id.myListView 和 R.id.myEditView 没有被识别,我尝试了 Project | 清洁来解决这个问题。这使事情变得更糟,现在“R 无法解析为变量”。我怀疑干净删除生成的代码。

我在清单中也有一个错误:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.paad.todolist"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".ToDoListActivity"
            android:label="@string/title_activity_to_do_list" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

@string/title_activity_to_do_list 不起作用,这并不奇怪,因为 clean 似乎也删除了 res\values\string.xml 。

帮助!

4

2 回答 2

0

您必须创建 res/values/strings.xml 并在其中使用以下格式放置这些字符串:

如果布局、res 不正确,则 R 没有正确生成(或没有生成),这就是其他事情开始显示错误的原因。

于 2012-11-20T08:37:17.060 回答
0

您需要创建 string.xml 文件。在其中,您需要为 title_activity_to_do 列表定义您的字符串。您的清单文件从 string.xml 中获取值。像这样:

<resources>

    <string name="app_name">APP NAME</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_to_do">MY NAME</string>

</resources>

当您的引用错误得到修复后,再次清理项目并且您的“R 无法解析为变量”错误应该得到解决。

于 2012-11-20T08:08:49.443 回答