Java ImageButton的图像不';不要按计划改变

Java ImageButton的图像不';不要按计划改变,java,android,imagebutton,Java,Android,Imagebutton,我在这里的目标是从ImageButton(ibChamp)更改图像 请注意,ImageButton ibChamp来自xml布局创建构建页面,而不是xml拥护者。 这段代码运行时不会崩溃,但是Imagebutton ibChamp中的图像不会改变,这就是我正在尝试做的。我很乐意提供任何其他信息。您在onClick中夸大了“ibChamp”。这将创建一个新的ImageButton。只有从父级使用“addView”才能看到它 您可以添加XML,但需要获取对“活动”中现有按钮的引用才能对其进行更改。或

我在这里的目标是从ImageButton(ibChamp)更改图像

请注意,ImageButton ibChamp来自xml布局创建构建页面,而不是xml拥护者。 这段代码运行时不会崩溃,但是Imagebutton ibChamp中的图像不会改变,这就是我正在尝试做的。我很乐意提供任何其他信息。

您在onClick中夸大了“ibChamp”。这将创建一个新的ImageButton。只有从父级使用“addView”才能看到它

您可以添加XML,但需要获取对“活动”中现有按钮的引用才能对其进行更改。或者添加新按钮并删除旧按钮

换言之,改变这一点:

        LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = layoutInflater.inflate(R.layout.create_build_page, null);
        ImageButton img = (ImageButton) view.findViewById(R.id.ibChamp);
为此:

        ImageButton img = (ImageButton)findViewById(R.id.ibChamp);
它可能会执行您想要的操作。

您需要为此膨胀视图调用addView()

View view = layoutInflater.inflate(R.layout.create_build_page, null);

我已经在xml中有了一个ImageButton,我尝试删除所有这些,并按照您所说的做,但它会导致空指针异常并使程序崩溃,所以这就是为什么我这样做的原因是-因为您的活动将其称为:setContentView(R.layout.champions);但ibChamp ImageButton不在该布局中。它位于“创建页面”-为什么有两种不同的布局?如果您试图动态添加它,那么调用findViewById((R.layout.champions)并对该对象执行addView。我将如何调用addView()?如果您可以发布R.layout.champions xml文件和R.layout.create\u build\u page xml文件,我们可以推荐适当的解决方案。无论如何,您可以添加id为“parent”的线性布局在champion.xml中。然后
LinearLayout parent=(LinearLayout)findViewById(R.id.parent);parent.addView(view)
感谢您的回复。我已将您的代码添加到帖子中。虽然它没有崩溃,但并没有按照我的预期工作。单击ImageButton“ibAnnie”后现在会发生什么它似乎成功地更改了ibChamp并打开了create_build_page.xml,但随后它会弹出create_build_page.xml,而图片中没有更改。然后,如果我再次单击ibChamp,循环将继续。有什么解决方案的建议吗?
View view = layoutInflater.inflate(R.layout.create_build_page, null);