Android xml增加变量

时间:2014-11-10 10:26:11

标签: java android xml string

说我在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"
/>

我想改变这一点,这样就不会出现一连串的&#34;视频&#34;,&#34;照片&#34;,&#34;文字&#34;是&#34;视频[i]&#34;等等...当我是步数时,根据我运行某些意图的时间增加自己。

有可能吗?

2 个答案:

答案 0 :(得分:0)

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

您可以像这样对字符串进行参数化:

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

然后你必须致电

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

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

答案 1 :(得分:0)

有可能。

尝试以下代码。这将设置&#34;标题&#34;您的菜单项。

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

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

修改

要使用 onCreateOptionsMenu 中的菜单对象,请使用以下代码。

首先声明一个全局对象

private Menu menu;

现在,指定菜单对象

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

    this.menu = menu;

    //rest of the code
}