Как выводить рандомную строку после остановки анимации, например?
На данный момент у меня реализовано так:
@Override
public void onAnimationEnd(Animation animation) {
//вывод текст здесь
String[] texts = {};
Set
((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
((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.
Ответ
В ресурсах можно хранить массивы
Resources res = getResources();
String[] planets = res.getStringArray(R.array.planets_array);
Комментариев нет:
Отправить комментарий