Я создал (как я думал) простую карточную игру JAVA. В JAVA игра загружает макет (фрейм) и отображает кнопки ImageButton, состоящие из квадратного изображения картхолдера для каждого игрока. Затем держатели карт заполняются случайными картами из колоды одна за другой.
Итак, в моем методе onCreate в Android мой первоначальный макет состоит из карт с изображением держателя карты, а затем я запускаю метод в методе onCreate для раздачи карт. У меня проблема в том, что первоначальный макет вообще не отображается. Появляется окончательный макет с уже заполненными держателями карт. Программа даже не показывает их, поскольку они раздаются по отдельности. Я подумал, что, возможно, мне нужно запустить AsyncTask, но у меня действительно нет никаких «основных» инструкций в моем методе сделки, которые, казалось бы, требуют этого.
Я относительно новичок в разработке Android, и я думаю, мне интересно, если что-то настолько простое собирается повесить мой оригинальный макет, куда идут основные инструкции приложения, если не в методах, вызываемых из метода onCreate? Почему это не так просто, как просто отобразить мой исходный макет, а затем продолжить поток пользовательского интерфейса с обновлением карточек одну за другой?
ОБНОВИТЬ:
К сожалению, это все еще не работает. Мой onCreate выглядит так:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
player1Card1B = (ImageButton) findViewById(R.id.p1C1Bref);
player1Card2B = (ImageButton) findViewById(R.id.p1C2Bref);
player1Card3B = (ImageButton) findViewById(R.id.p1C3Bref);
player2Card1B = (ImageButton) findViewById(R.id.p2C1Bref);
player2Card2B = (ImageButton) findViewById(R.id.p2C2Bref);
player2Card3B = (ImageButton) findViewById(R.id.p2C3Bref);
player3Card1B = (ImageButton) findViewById(R.id.p3C1Bref);
player3Card2B = (ImageButton) findViewById(R.id.p3C2Bref);
player3Card3B = (ImageButton) findViewById(R.id.p3C3Bref);
player4Card1B = (ImageButton) findViewById(R.id.p4C1Bref);
player4Card2B = (ImageButton) findViewById(R.id.p4C2Bref);
player4Card3B = (ImageButton) findViewById(R.id.p4C3Bref);
newDeckCard = (ImageButton) findViewById(R.id.newCardDeckBref);
discardDeckCard = (ImageButton) findViewById(R.id.discardCardDeckBref);
knockButton = (ImageButton) findViewById(R.id.knockBref);
player1Card1B.setOnClickListener(this);
player1Card2B.setOnClickListener(this);
player1Card3B.setOnClickListener(this);
newDeckCard.setOnClickListener(this);
discardDeckCard.setOnClickListener(this);
knockButton.setOnClickListener(this);
}
and my onStart like this:
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
shuffle();
deal();
}
Я просто получаю белый экран с надписью «Основной», а затем, в конце концов, карты отображаются уже заполненными. Я даже не получаю заполнители, которые читаются в методе onCreate. Когда я удаляю метод Deal(), появляются карточки-заполнители. Когда я кладу его обратно, карты-заполнители не отображаются, а отображаются только сданные карты.