2011-03-23 88 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; 
} 

現在它可以解決我的問題..

謝謝