2011-03-23 39 views
-1

我想问为什么我的网格视图无法显示图像后方向图方向变化时图像为空?

我已经设置onConfigurationChange()和onRetainNonCofigurationInstance()但没有解决我的问题。

这是我的代码:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.category_layout); 

    data = getLastNonConfigurationInstance(); 

    setUpView(); 


} 

private void setUpView() { 
    gridview = (GridView) findViewById(R.id.gridlayout); 
    if(data == null){ 
     imageGridViewAdapter = new ImageGridViewAdapter(this, category, image_category); 
    } 
    else{ 
     imageGridViewAdapter = (ImageGridViewAdapter) data; 
    } 
    gridview.setAdapter(imageGridViewAdapter); 

    gridview.setOnItemClickListener(new OnItemClickListener() { 

     public void onItemClick(AdapterView<?> arg0, View arg1, 
       final int arg2, long arg3) { 

      if (subCategory[arg2].length > 1) { 
       AlertDialog.Builder builder = new AlertDialog.Builder(
         CategoryActivity.this); 
       builder.setTitle(category[arg2]); 
       builder.setItems(subCategory[arg2], 
         new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, 
            int item) { 
           linkNewsCategory(arg2, item); 
          } 
         }); 
       builder.show(); 
      } else { 
       linkNewsCategory(arg2, 0); 
      } 

     } 

    }); 
} 

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 
     setUpView(); 
} 



@Override 
public ImageGridViewAdapter onRetainNonConfigurationInstance() { 
    ImageGridViewAdapter a = new ImageGridViewAdapter(this, category, image_category); 
    return a; 
} 

它是不是在GridView的错误吗?

回答

0

终于我有找到解决办法.. 我有错误的适配器而设定的图像和文字..

这个我的老getView():

public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder holder; 
    if (convertView == null) { 
     v = mInflater.inflate(R.layout.category, null); 
     holder = new ViewHolder(); 
     holder.category_title = (TextView) v.findViewById(R.id.text); 
     holder.category_image = (ImageView) v.findViewById(R.id.image); 
     v.setTag(holder); 
    } else{ 
     holder = (ViewHolder) v.getTag(); 
    } 

    holder.category_title.setText(data[position]); 
    holder.category_image.setImageResource(image[position]); 

    return v; 
} 

我这一个改变:

public View getView(int position, View convertView, ViewGroup parent) { 

    v = convertView; 
    if(convertView == null){ 
     LayoutInflater li = activity.getLayoutInflater(); 
     v = li.inflate(R.layout.category, null); 

     category_title = (TextView) v.findViewById(R.id.text); 
     category_title.setText(data[position]); 

     category_image = (ImageView) v.findViewById(R.id.image); 
     category_image.setImageResource(image[position]); 

    } 
    return v; 
} 

现在它可以解决我的问题..

谢谢