Java Can';无法在活动中动态显示ImageView

Java Can';无法在活动中动态显示ImageView,java,android,imageview,dynamically-generated,Java,Android,Imageview,Dynamically Generated,我已经试了几个小时了,在stackoverflow上寻找解决方案。 所有对其他人有用的解决方案,对我都不起作用,所以也许我在这里遗漏了一些东西 public void show(View layout){ RelativeLayout linear = (RelativeLayout)layout.findViewById(R.id.linear); for(int i = 0; i < map.size(); i++){ for(int j = 0

我已经试了几个小时了,在stackoverflow上寻找解决方案。 所有对其他人有用的解决方案,对我都不起作用,所以也许我在这里遗漏了一些东西

    public void show(View layout){
    RelativeLayout linear = (RelativeLayout)layout.findViewById(R.id.linear);
    for(int i = 0; i < map.size(); i++){
        for(int j = 0; j < map.get(i).size(); j++){
            ImageView image = new ImageView(context);
            switch(map.get(i).get(j)){
                case 0:
                    image.setImageDrawable(context.getDrawable(R.drawable.black));
                    break;
                case 1:
                    image.setImageDrawable(context.getDrawable(R.drawable.white));
                    break;
            }
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(32,32);
            params.setMargins(j * 32, i * 32, 0, 0);
            image.setLayoutParams(params);
            image.invalidate();
            linear.addView(image);
        }
    }
}
公共作废显示(视图布局){
RelativeLayout linear=(RelativeLayout)布局。findViewById(R.id.linear);
对于(int i=0;i
它必须绘制的图像是从带有0和1的文本文件中读取的。 因为下面的函数是一个类,而不是一个活动,所以我传递了ImageView必须包含的布局


已解决:

我就是这样修复的:

    public void show(View layout){
    RelativeLayout linear = (RelativeLayout)layout.findViewById(R.id.linear);
    int imageRes;
    for(int i = 0; i < map.size(); i++){
        for(int j = 0; j < map.get(i).size(); j++){
            ImageView image = new ImageView(context);
            switch(map.get(i).get(j)){
                case '0':
                    imageRes = R.drawable.black;
                    break;
                case '1':
                    imageRes = R.drawable.white;
                    break;
                default:
                    imageRes = R.drawable.white;
                    break;
            }
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(32,32);
            params.setMargins(j * 32, i * 32, 0, 0);
            image.setLayoutParams(params);
            image.setBackgroundResource(imageRes);
            linear.addView(image);
        }
    }
公共作废显示(视图布局){
RelativeLayout linear=(RelativeLayout)布局。findViewById(R.id.linear);
int imageRes;
对于(int i=0;i
为什么不直接使用
LinearLayout
而不是
RelativeLayout
?@Jesper Klippel您显示的代码是正确的,没有任何工作,所以我的假设是,在调试和检查之前,您没有从映射数组或文本文件中获取正确的数据,因为有人在另一个堆栈中尝试了这一点,所以将其更改为RelativeLayout溢出帖子做到了。我修复了它,我会编辑帖子!@Sandy是的,真的很奇怪,数组填充正确,它得到的数据正确(记录在监视器中),但不知怎么的,图像无法绘制。不过我有一个解决方案,它在第一篇帖子中。