如果Java从上到下运行代码,那么在这种情况下为什么不呢?
这样做的目的是打开另一个版面,但在对打开的版面应用所有文本和图像更改后将其关闭,而不是按照我希望的方式,即关闭它然后应用所有更改 当你逐行检查代码时会发生什么?@admdrew我添加了一个5秒的计时器,看看这是否会改变任何东西,但它所做的只是等待5秒,然后应用更改并关闭布局,并应用更改。可能的重复。另外,即使您确实在如果Java从上到下运行代码,那么在这种情况下为什么不呢?,java,android,Java,Android,这样做的目的是打开另一个版面,但在对打开的版面应用所有文本和图像更改后将其关闭,而不是按照我希望的方式,即关闭它然后应用所有更改 当你逐行检查代码时会发生什么?@admdrew我添加了一个5秒的计时器,看看这是否会改变任何东西,但它所做的只是等待5秒,然后应用更改并关闭布局,并应用更改。可能的重复。另外,即使您确实在this.finish()退出,并且没有执行视图代码,您如何为一个不存在的活动初始化视图?@A--C嗯,我已经打开了一个基本布局,但没有关闭,因此当打开额外布局时,它位于上一个布局的
this.finish()
退出,并且没有执行视图代码,您如何为一个不存在的活动初始化视图?@A--C嗯,我已经打开了一个基本布局,但没有关闭,因此当打开额外布局时,它位于上一个布局的顶部。运行finish()时,它关闭额外的布局,公开基本布局,并运行布局所需的所有更改。@Piofmc allView
在活动内执行的操作仅与该活动相关,并且活动有自己的布局副本。您的代码似乎修改了活动的布局,然后立即完成相同的活动。这将导致您刚才配置为销毁的视图。
public void changePicture(final int champion, final String health,
final String mana, final String armor, final String res,
final String damage, final String ap, final String speed) {
this.finish();
final RelativeLayout test = (RelativeLayout) findViewById(R.id.layoutChamps);
test.removeAllViews();
final RelativeLayout layoutCreate = (RelativeLayout) findViewById(R.id.layoutCreate);
LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View createView = layoutInflater.inflate(R.layout.create_build_page, null);
test.addView(createView);
ImageButton champ = (ImageButton) createView.findViewById(R.id.ibChamp);
ImageButton items1 = (ImageButton) createView.findViewById(R.id.ibItem1);
TextView tvItemMana = (TextView) findViewById(R.id.tvItemMana);
tvItemMana.setTextColor(Color.YELLOW);
champ.setImageResource(champion);
}