我正在尝试制作一款游戏。我需要一个带有图像的小猫对象。 我需要在多个活动中使用这个对象,所以我认为使用外部类可能更好。
我使用过类似的东西。但是函数findViewById(int)
在活动之外是不可行的。怎么做?
public class Kitten {
Context parent;
View parentView;
ImageView imgBody, imgHead;
Kitten(Context context, View view) {
parent = context;
parentView = view;
//Create body & head
imgBody = new ImageView(parent);
imgBody.setImageResource(R.mipmap.img_kitty_body_white);
addImage(imgBody);
imgHead = new ImageView(parent);
imgHead.setImageResource(R.mipmap.img_kitty_head_white);
addImage(imgHead);
}
private void addImage(ImageView img) {
RelativeLayout rl = (RelativeLayout) findViewById(R.id.adoptView);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.BELOW, R.id.adoptView);
lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
rl.addView(img, lp);
}
}
我遇到的主要问题是addImage
方法......
答案 0 :(得分:0)
您是否尝试过使用特定视图中的方法?尝试parentView.findViewById()
答案 1 :(得分:0)
您应该将图像ID存储在“Kitten”对象中,并使用getter方法在需要的位置检索它,或者如果要从那里使用findViewById,则可以传递父视图。
但是,您通常不会存储视图本身。