if (someId.matches("A") || someId.matches("a")) {
addLetters();
addIcon(R.drawable.apple);
addSentence("A is for APPLE");
btnPlay.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
playTheSound(R.raw.a);
}
});
}
if (someId.matches("B") || someId.matches("b")) {
addLetters();
addIcon(R.drawable.ball);
addSentence("B is for BALL");
btnPlay.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
playTheSound(R.raw.a);
}
});
}
public void addIcon(int iconResource) {
ivLetterIcon.setImageResource(iconResource);
}
コードを含むアクティビティが初めて読み込まれると、すべてが正常に機能します。手紙を選択しA
て前のアクティビティに戻り、手紙に戻ってA
それを続けることができます。私のアプリはFCではありませんが、手紙B
または私のアプリFCの手紙の横にある他の手紙を選択するとA
.
私のLogCatは以下を示しています:
08-27 14:58:52.691: E/AndroidRuntime(716): FATAL EXCEPTION: main
08-27 14:58:52.691: E/AndroidRuntime(716): java.lang.OutOfMemoryError
08-27 14:58:52.691: E/AndroidRuntime(716): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
08-27 14:58:52.691: E/AndroidRuntime(716): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:500)
08-27 14:58:52.691: E/AndroidRuntime(716): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:353)
08-27 14:58:52.691: E/AndroidRuntime(716): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:781)
08-27 14:58:52.691: E/AndroidRuntime(716): at android.content.res.Resources.loadDrawable(Resources.java:1930)
08-27 14:58:52.691: E/AndroidRuntime(716): at android.content.res.Resources.getDrawable(Resources.java:659)
08-27 14:58:52.691: E/AndroidRuntime(716): at android.widget.ImageView.resolveUri(ImageView.java:611)
08-27 14:58:52.691: E/AndroidRuntime(716): at android.widget.ImageView.setImageResource(ImageView.java:354)
08-27 14:58:52.691: E/AndroidRuntime(716): at com.test.testing.AlpDisplay.addIcon(AlpDisplay.java:548)
08-27 14:58:52.691: E/AndroidRuntime(716): at com.test.testing.AlpDisplay.onCreate(AlpDisplay.java:204)
08-27 14:58:52.691: E/AndroidRuntime(716): at android.app.Activity.performCreate(Activity.java:5008)
08-27 14:58:52.691: E/AndroidRuntime(716): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
08-27 14:58:52.691: E/AndroidRuntime(716): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
08-27 14:58:52.691: E/AndroidRuntime(716): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
08-27 14:58:52.691: E/AndroidRuntime(716): at android.app.ActivityThread.access$600(ActivityThread.java:130)
08-27 14:58:52.691: E/AndroidRuntime(716): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
08-27 14:58:52.691: E/AndroidRuntime(716): at android.os.Handler.dispatchMessage(Handler.java:99)
08-27 14:58:52.691: E/AndroidRuntime(716): at android.os.Looper.loop(Looper.java:137)
08-27 14:58:52.691: E/AndroidRuntime(716): at android.app.ActivityThread.main(ActivityThread.java:4745)
08-27 14:58:52.691: E/AndroidRuntime(716): at java.lang.reflect.Method.invokeNative(Native Method)
08-27 14:58:52.691: E/AndroidRuntime(716): at java.lang.reflect.Method.invoke(Method.java:511)
08-27 14:58:52.691: E/AndroidRuntime(716): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
08-27 14:58:52.691: E/AndroidRuntime(716): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-27 14:58:52.691: E/AndroidRuntime(716): at dalvik.system.NativeStart.main(Native Method)
ここでエラーがスローされています:
addIcon(R.drawable.ball);
と
public void addIcon(int iconResource) {
ivLetterIcon.setImageResource(iconResource);
}
エラー行:
08-27 15:00:20.341: E/AndroidRuntime(760): at com.test.testing.AlpDisplay.addIcon(AlpDisplay.java:548)
08-27 15:00:20.341: E/AndroidRuntime(760): at com.test.testing.AlpDisplay.onCreate(AlpDisplay.java:204)
エミュレーターを使用しているからですか?
プログラム行を削減するために、文字ごとに 1 つの関数を使用しようとしています。