#java #android
Как выводить рандомную строку после остановки анимации, например? На данный момент у меня реализовано так: @Override public void onAnimationEnd(Animation animation) { //вывод текст здесь String[] texts = {}; Setgenerated = new HashSet (); Random random = new Random (); int pos = random.nextInt(texts.length); ((TextView) findViewById(R.id.myTextView)).setText(texts[pos]); } @Override public void onAnimationRepeat(Animation animation) { } }); Но проблема в том, что значений в String[] texts = {раз, два, ......, тысяча}; больше тысячи это во первых, а во вторых хотелось бы хранить все в строках, так как в дальнейшем планируется локализация для разных языков. @Override public void onAnimationEnd(Animation animation) { //вывод текст здесь Resources res = getResources(); String[] planets = res.getStringArray(R.array.planets_array); Set generated = new HashSet (); Random random = new Random (); int pos = random.nextInt(R.array.planets_array); ((TextView) findViewById(R.id.myTextView)).setText(planets[pos]); } @Override public void onAnimationRepeat(Animation animation) { } }); } } CatLog выдает следующее: -09 23:03:08.846 3579-3579/ru.infernal93.butilochka E/AndroidRuntime: FATAL EXCEPTION: main Process: ru.infernal93.butilochka, PID: 3579 java.lang.ArrayIndexOutOfBoundsException: length=4; index=2122146214 at ru.infernal93.butilochka.ActivityGame$2.onAnimationEnd(ActivityGame.java:81) at android.view.animation.Animation$3.run(Animation.java:376) at android.os.Handler.handleCallback(Handler.java:742) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:5527) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629) 10-09 23:03:08.848 3579-3579/ru.infernal93.butilochka E/MQSEventManagerDelegate: failed to get MQSService.
Ответы
Ответ 1
В ресурсах можно хранить массивыResources res = getResources(); String[] planets = res.getStringArray(R.array.planets_array); - Mercury
- Venus
- Earth
- Mars
Комментариев нет:
Отправить комментарий