我有一些动态声明的ImageButtons
,这些ImageButtons
没有id'并且它们是在LinearLayout
中声明的,我想创建一个方法来更改这些资源的图像资源调用时ImageButtons
,因为我没有针对这些ImageButtons
的预定义ID,我将getChildAt()
函数与LinearLayout
一起使用,但是getChildAt()
}不提供setImageResource()
,它只提供setBackgroundResource()
,此功能不会替换旧图像,也不适合旧图像,因为它提供了背景不是图片资源,我该怎么办?
这是我的方法代码:
private void my_method(int drawable) {
int count = Righter.getChildCount(); // Righter is the LinearLayout
for (int i = 1; i < count; i++) {
Righter.getChildAt(i).setBackgroundResource(drawable); // here is where i change the background image
Righter.getChildAt(i).setClickable(true);
}
}
答案 0 :(得分:6)
getChildAt()
返回View
。您需要将此View
类型转换为ImageButton
并调用setImageResource()
方法......
ImageButton imageButton = (ImageButton) linearLayout.getChildAt(0);
imageButton.setImageResource(R.drawable.btnimage1);
答案 1 :(得分:2)
试试这个
private void my_method(int drawable) {
int count = Righter.getChildCount(); // Righter is the LinearLayout
for (int i = 1; i < count; i++) {
((ImageButton)Righter.getChildAt(i)).setImageResource(R.drawable.btnimage1);
Righter.getChildAt(i).setClickable(true);
}
}
使用ImageButton