Я не уверен, в чем проблема. Я подумал, будет ли активность передавать информацию на поверхность, которую она реализует. В основном я пытаюсь сделать так, чтобы когда кто-то выбирает свой выбор игрового макета в главном меню (передает его с намерением), он затем переходит к классу PlayGame. (У меня это взять число, данное от намерения). Это действие использует SurfaceView через макет. Затем в представлении поверхности, где он вызывает изображения и назначает их, я попытался использовать if else, чтобы определить, какие изображения следует использовать. Не работает. Не совсем уверен, что с этим делать. Если есть лучший способ сделать это, используйте изображения из предыдущего выбора на главной странице. Похоже на это.
Основной класс (просто одна из кнопок, переходящих в намерение)
Button surfButton = (Button) findViewById(R.id.play1_btn);
surfButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View surfing)
{
Intent play = new Intent(Main.this, PlayGame.class);
play.putExtra("gameType" , 1);
startActivity(play);
}
});
Класс PlayGame
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent typ = getIntent();
type = typ.getIntExtra("gameType", 0);
setContentView(R.layout.game);
gameLoopView = (GameLoopView) findViewById(R.id.gnarlyned);
}
Класс игры:
private void loadImages(Context context) {
type = playGame.type;
Resources res = context.getResources();
if (type == 1){
skyImage = BitmapFactory.decodeResource(res, R.drawable.sky);
}
else if (type == 2){
skyImage = BitmapFactory.decodeResource(res, R.drawable.snowbg);
}
Больше изображений, чем одно, но для экономии места это только одно. Любая помощь будет оценена по достоинству. Я уверен, что я, должно быть, сделал что-то не так там.
РЕДАКТИРОВАТЬ: Вот лог-кот от принудительного закрытия, вызванного этой установкой.
06-06 17:55:01.655: ОШИБКА/AndroidRuntime(16229): НЕИСПРАВНОЕ ИСКЛЮЧЕНИЕ: основной gnarlyned/fallacystudios.gnarlyned.PlayGame}: android.view.InflateException: строка двоичного XML-файла № 7: ошибка при раздувании класса fallacystudios.gnarlyned.GameLoopView 06-06 17:55:01.655: ERROR/AndroidRuntime(16229): в android.app .ActivityThread.performLaunchActivity(ActivityThread.java:2663) 06-06 17:55:01.655: ОШИБКА/AndroidRuntime(16229): Причина: android.view.InflateException: Строка двоичного XML-файла № 7: Ошибка при раздувании класса fallacystudios.gnarlyned. GameLoopView 06-06 17:55:01.655: ОШИБКА/AndroidRuntime(16229): Причина: java.lang.reflect.InvocationTargetException 06-06 17:55:01.655: ОШИБКА/AndroidRuntime(16229): Причина: java.lang. Исключение нулевого указателя
Затем целая куча переполнения размера кучи
Все это происходит только тогда, когда у меня есть if(gameType == 1) и еще if(gameType == 2) в разделе loadImages. Это делается для того, чтобы при выборе этой карты использовались только определенные изображения. Не уверен, почему это не работает.