私は2つの異なる言語になるAndroid Studioのアプリに取り組んでいます。私は各言語ごとに2つの異なる文字列を使いました。文字列をリストに入れて、毎日別の通知をユーザーに表示するためにランダムを呼び出す必要がありました。strings.xmlを静的な問題なしでリストに登録する方法は?
ここに私のコードです:
Notification.javaの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];
} }
クラス
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()は静的でないメソッドなので、通知で使用することはできません。 私が静的をChooseに入れると、getResources()も非静的メソッドなのでできません。 提案がありますか?
クラスを選択するインスタンスが必要です。 –
Javaプログラミング言語の基本についてお読みになると便利かもしれません。 BTW [静的と非静的](https://www.google.com/search?q=java%20static%20vs%20non-static&rct=j) –