Java androidxml递增变量
假设我在strings.xml中有以下几行:Java androidxml递增变量,java,android,xml,string,Java,Android,Xml,String,假设我在strings.xml中有以下几行: <string name="video">Video</string> <string name="photo">Photo</string> <string name="text">Text</string> 视频 照片 正文 以及my menu.xml文件中的以下行: <item android:id="@+id/video" android:icon="@draw
<string name="video">Video</string>
<string name="photo">Photo</string>
<string name="text">Text</string>
视频
照片
正文
以及my 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"
/>
我想改变这个,这样就不用一个恒定的字符串“Video”、“Photo”、“Text”,而是“Video[I]”等等。。当我是步数,并根据我运行某些意图的次数增加
有可能吗?不幸的是,我认为在XML中不可能做到这一点。 您可以如下方式参数化字符串:
<string name="string_title">String %1$d</string>
您的字符串将包含“字符串1”,然后您需要将该字符串指定给视图或菜单项,如Chintan Rathod建议的那样。这是可能的
试试下面的代码。这将设置菜单项的“标题”
MenuItem item = menu.findItem(R.id.video);
item.setTitle("Video ["+i+"]");
您可以使用另一个答案中提供的其他方法设置标题,如获取字符串资源或硬编码
编辑
要使用创建选项菜单中的对象,请使用以下代码
首先声明一个全局对象
private Menu menu;
现在,指定菜单对象
@Override
public void onCreateOptionsMenu(int selection, Menu menu) {
this.menu = menu;
//rest of the code
}
你不能,但这是对Chintan答案的一个很好的改进。@Lawnmowerman是的。。你是对的。我的回答中没有涉及到这一部分。谢谢各位,但我不确定我是否明白到底可以做些什么来解决这个问题。请注意在哪个文件中实现什么代码好吗?所以最后假设代码是:inti=1;String String=getResources().getString(R.String.video,i);私人菜单;public void onCreateOptions菜单(int-selection,Menu-Menu){this.Menu=Menu;MenuItem-item=Menu.findItem(R.id.video);item.setTitle(“video[“+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):致命异常:main 11-10 14:16:29.781:E/AndroidRuntime(2285):进程:com.google.android.glass.sample.charades,PID:2285你问问题而不愿意再接受是很自然的吗?
@Override
public void onCreateOptionsMenu(int selection, Menu menu) {
this.menu = menu;
//rest of the code
}