【问题标题】:How to use strings.xml in a list without static issue?如何在没有静态问题的列表中使用 strings.xml?
【发布时间】:2017-09-14 01:00:41
【问题描述】:

我正在 Android Studio 上开发一个应用程序,该应用程序将使用 2 种不同的语言。我为每种语言做了两个不同的字符串。我不得不将字符串放在一个列表中,并调用一个 Random 来每天向用户显示不同的通知。

这是我的代码:

strings.xml

<string-array name="notifications">

    <item>No1</item>
    <item>No2</item>
    <item>No3</item>
    <item>No4</item>
    <item>No5</item>

</string-array>

Choose.java 类

public class Choose extends AppCompatActivity {

String[] conseils=getResources().getStringArray(R.array.notifications);

public String getPhraseHasard() {

    Random random = new Random();
    int hasard = random.nextInt(conseils.length);

    return conseils[hasard];

} }

Notification.java 类

public class Notification extends BroadcastReceiver {


@Override
public void onReceive(Context context, Intent intent) {

 .....

    NotificationCompat.Builder myNotifBuilder = new NotificationCompat.Builder(context);
            myNotifBuilder.setSmallIcon(R.mipmap.ic_mind);
            myNotifBuilder.setContentTitle("A tip");
            myNotifBuilder.setContentText(Choose.getPhraseHasard());
            myNotifBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText(Choose.getPhraseHasard()));
            myNotifBuilder.setAutoCancel(true);


    notifManager.notify(goOn, myNotifBuilder.build());

} }

我的问题: getPhraseHasard() 是一个非静态方法,所以我不能在通知中使用它。 当我在选择中放置静态时,我不能,因为 getResources() 也是一个非静态方法。 有什么建议吗?

【问题讨论】:

  • 你需要一个选择类的实例...
  • 也许阅读一些有关 Java 编程语言基础知识的东西会很有用。顺便说一句Static vs. non-static

标签: java android arrays xml static


【解决方案1】:

getResourcesContext 类的一个方法。

您可以删除getPhraseHasard 声明并使用Context 中的getResources 将您的逻辑放入onReceive 方法中。您还可以在getPhraseHasard 方法的输入中接收Context 并以静态 方式使用它。

【讨论】:

    【解决方案2】:

    找到解决办法

    只需创建一个对象:

     Choose mchoose = new Choose();
    

    然后像这样调用:

    mchoose.getPhraseHasard()
    

    【讨论】:

      猜你喜欢
      • 2012-11-06
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      • 2019-01-18
      • 1970-01-01
      相关资源
      最近更新 更多