繁体   English   中英

Android按日期月份和日期选择字符串

[英]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文件包含静态类stringstring类包含静态整数成员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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM