1

我是andorid开发的新手。我根据http://developer.android.com/training/basics/firstapp/creating-project.html创建了我的 android 第一个项目

这是我在创建项目时拥有的代码(我没有对代码进行任何更改)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>

这是图形布局的屏幕截图 http://imageshack.us/a/img35/5284/android1s.png

所以,它现在看起来很好,但是如果我想将文本更改Hello world为,比如说,hello所以代码的部分看起来像android:text="@string/hello",我得到错误

NOTE: This project contains resource errors, so aapt did not succeed, which can cause rendering failures. Fix resource problems first.

Couldn't resolve resource @string/hello,并且图形布局中的文本变成了 @string/hello,就像在这个图像中一样

http://imageshack.us/a/img826/7735/android2p.png

但我注意到一件事:如果在这个错误之后我去res/values/strings.xml添加Stringname 和 value hello,比如

http://img842.imageshack.us/img842/8108/android3s.png

错误消失了,我可以hello在图形布局中看到这个词。

到目前为止我试过这些

  1. ctrl+shift+s像这里描述的那样使用https://stackoverflow.com/a/14462434/932473
  2. 关闭和重新打开 Eclipse。
  3. 清洁,重塑
  4. 删除整个项目并再次创建。

values文件夹确实存在于res.

这些问题都没有解决我的问题

Eclipse 无法解析字符串资源错误

无法解析 Android 资源字符串

更新 如果我这样写,android:text="hello" 我会在 eclipse 中收到这个警告 Hardcoded string "hello", should use @string resource

每次我想使用一些字符串时我都没有得到它android:text="@string/hello2",我必须先手动指定hello2strings.xml

4

2 回答 2

7

在 res/values/strings.xml

      <string name="hello">Hello</string>

然后将文本视图中的字符串引用为

      android:text="@string/hello"

我猜你没有与上面类似的东西。因此,您得到资源未找到异常,因为资源未在 strings.xml 中定义

                 or

您可以执行以下操作

       <string name="hello_world">hello</string> // change the string in strings.xml      
       android:text="@string/hello_world"  

对于评论中的问题

在此处输入图像描述

在此处输入图像描述

于 2013-05-24T09:53:35.253 回答
1

你可以使用

android:text="hello"

@string 位表示它是hello在您的 xml 中调用的资源。

因此,如果您愿意,您也可以将资源添加到您的 xml 中。众所周知,它是国际化的更好实践。

于 2013-05-24T09:53:10.693 回答