【问题标题】:Is it possible to access a string-array item in Android?是否可以在 Android 中访问字符串数组项?
【发布时间】:2011-09-28 03:02:21
【问题描述】:

来自 values/string.xml 的代码片段:

<array name="categories">
    <item name="today">Today</item>
    <item name="life">Life</item>
    <item name="corner">Corner</item>
    <item name="banks">Banks</item>
    <item name="it">IT</item>
    <item name="fun">Fun</item>
</array>

来自 layout/main.xml 的代码片段:

<Button
    android:id="@+id/today"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="8sp"
    android:text="@array/categories"
    />

是否可以使用带有 name= 的字符串数组直接从 values/string.xml 将标签名称分配给带有 id=today 的按钮类别和特定项目,在这种情况下 - 今天

【问题讨论】:

  • 啊,所以你的意思是 android:text="@array/categories[0]" (这是不正确的)但这就是你想要的对吗?试过 android:text="@array/categories.today" ?
  • 没错,正是我的意思!但是android:text="@array/categories.today" 不起作用,其他猜测?

标签: android xml arrays layout


【解决方案1】:

在此处查看所选答案:Android - reference a string in a string array resource with xml

根据那个答案,必须做这样的事情:

<string name="earth">Earth</string>
<string name="moon">Moon</string>

<string-array name="system">
    <item>@string/earth</item>
    <item>@string/moon</item>
</string-array>

那么你只需这样做:

  <Button ....
  android:text="@string/earth" />

【讨论】:

  • 我想你误会了我。我想获取在 values/string.xml 文件中声明的单个数组项的值,并将该值放入按钮的文本中。 android:text="@array/categories/&lt;item1&gt;"
  • 对,上面显示的技术展示了如何做到这一点。您只需要将数组值更改为上述结构即可。再看看并尝试一下。阅读我发布的链接中的答案。
  • 所以,实际上不可能这样做,因为同时拥有它们没有任何意义:&lt;string name="earth"&gt;Earth&lt;/string&gt; &lt;string name="moon"&gt;Moon&lt;/string&gt;&lt;string-array name="system"&gt; &lt;item&gt;@string/earth&lt;/item&gt; &lt;item&gt;@string/moon&lt;/item&gt; &lt;/string-array&gt;
  • 拥有它们的意义在于您可以在 XML 文件中引用单数字符串“today”。然后在您的代码中,您可以引用该数组并知道您用于 完全相同的字符串
猜你喜欢
  • 1970-01-01
  • 2016-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-07
相关资源
最近更新 更多