【问题标题】:Android xml increasing variableAndroid xml增加变量
【发布时间】:2014-11-10 10:26:11
【问题描述】:

假设我在 strings.xml 中有这些行:

<string name="video">Video</string>
<string name="photo">Photo</string>
<string name="text">Text</string>

我的 menu.xml 文件中的这些行:

<item
android:id="@+id/video"
android:icon="@drawable/ic_game_50"
android:title="@string/video"
/>
<item
android:id="@+id/photo"
android:icon="@drawable/ic_help_50"
android:title="@string/photo"
/>
<item
android:id="@+id/text"
android:icon="@drawable/ic_help_50"
android:title="@string/text"
/>

我想改变它,这样当 i 是步数时,它就不是“视频”、“照片”、“文本”的常量字符串,而是“视频 [i]”等。并根据我运行某些意图的时间自行增加。

有可能吗?

【问题讨论】:

  • 您提出问题并且不再喜欢接受是很自然的吗?

标签: java android xml string


【解决方案1】:

不幸的是,我认为在 XML 中不可能做到这一点。

你可以像这样参数化你的字符串:

<string name="string_title">String %1$d</string>

那你就得打电话了

int i = 1;
String string = getResources().getString(R.string.string_title, i);

您的字符串将包含“String 1”,然后您需要将该字符串分配给您的视图或菜单项,就像 Chintan Rathod 建议的那样。

【讨论】:

  • 你不能,但这是对 Chintan 答案的一个很好的改进。
  • @thelawnmowerman 是的..你是对的。我的回答中没有涉及这部分。
  • 谢谢大家,但我不确定我是否理解究竟可以做些什么来解决这个问题。请注意在哪个文件中实现什么代码?
【解决方案2】:

有可能。

试试下面的代码。这将为您的菜单项设置“标题”。

MenuItem item = menu.findItem(R.id.video);
item.setTitle("Video ["+i+"]");

您可以使用其他答案中提供的其他方法(如获取字符串资源或硬编码)随意设置标题。

编辑

要使用 onCreateOptionsMenu 之外的 menu 对象,请使用以下代码。

首先声明一个全局对象

private Menu menu;

现在,分配菜单对象

@Override
public void onCreateOptionsMenu(int selection, Menu menu) {

    this.menu = menu;

    //rest of the code
}

【讨论】:

  • 所以最后这假设是代码: int i = 1; String string = getResources().getString(R.string.video, i);私人菜单菜单; public void onCreateOptionsMenu(int selection, Menu menu) { this.menu = menu; MenuItem item = menu.findItem(R.id.video); item.setTitle("视频 ["+i+"]"); } ?
  • @user2517096 太好了.. 如果有帮助,希望您会投票或接受答案.. :)
  • 谢谢,但不幸的是它很糟糕。我不知道具体为什么。你有什么想法吗?
  • @user2517096 会帮助你,如果你能显示你的错误代码
  • 11-10 14:16:29.773: W/dalvikvm(2285): threadid=1: 线程以未捕获的异常退出 (group=0x415b8bd8) 11-10 14:16:29.781: E/AndroidRuntime (2285):致命例外:主 11-10 14:16:29.781:E/AndroidRuntime(2285):进程:com.google.android.glass.sample.charades,PID:2285
猜你喜欢
  • 2011-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多