[英]android select string by date month and day
在string.xml中,我添加了一些像这样的字符串
<string name="m8d1">text sample</string>
<string name="m8d2">text sample</string>
<string name="m8d3">text sample</string>
我有一个小部件,我想按日期,月份和日期显示字符串
public class Widget extends AppWidgetProvider {
public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {
Calendar calendar = Calendar.getInstance();
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
String txt = context.getString(R.string.m"+month+"d"+day);
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
remoteViews.setTextViewText(R.id.widgettext,txt);
appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
}
您需要深入了解R.string.m
的含义。 您将无法执行以下操作
String txt = context.getString(R.string.m"+month+"d"+day);
详细说明-R文件包含静态类string
而string
类包含静态整数成员m
。 没有像键值对这样的东西,所以您不能通过字符串访问它。
编辑您可以使用此方法通过字符串获取值-
private String getStringResourceByName(Context context,String name) {
int resId = context.getResources().getIdentifier(name, "string", context.getPackageName());
return context.getString(resId);
}
所以现在您将能够拥有类似的东西-
String txt = getStringResourceByName(context,"m"+month+"d"+day);
希望这对您有帮助
String txt="m"+month+"d"+day;
txt=context.getResources().getString(context.getResources().getIdentifier(txt, "string", getPackageName()));
你必须使用
String txt = context.getResource().getString(R.string.m)+month+"d"+day;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.