我创建了(我认为是)一个简单的 JAVA 纸牌游戏。在 JAVA 中,游戏加载布局(框架)并显示 ImageButtons,该按钮由每个玩家的方形持卡人图像组成。然后,持卡人会一张一张地从牌堆中随机抽取卡片。
因此,在 Android 中的 onCreate 方法中,我的初始布局由带有持卡人图像的卡片组成,然后我在 onCreate 方法中运行一个方法来处理卡片。我遇到的问题是初始布局根本没有出现。显示的是已填充持卡人的最终布局。该程序甚至没有显示它们,因为它们是单独处理的我认为也许我需要运行 AsyncTask 但我的处理方法中确实没有任何“主要”指令,这似乎需要它。
我是 Android 开发的相对新手,我想我想知道,如果这么简单的东西会挂起我的原始布局,如果不是从 onCreate 方法调用的方法,主要应用程序指令会去哪里?为什么不只是显示我的原始布局,然后继续 UI 线程,一张一张地更新卡片?
更新:
不幸的是,它仍然不起作用。我的 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() 方法时,会显示占位符卡。当我把它放回去时,占位符卡没有出现,只有发牌出现。