2014-01-24 38 views
0

顯示ListView或GridView時使用了一些模式。給定XML文件和我的第一個方法,我相應的第二種方法是什麼?現在是怎麼回事,我得到一個例外,即RelativeLayout無法在第二種方法的這一行顯示ImageView:ImageView v = (ImageView) gridView.getChildAt(i);我知道我的gridView是一堆relativeLayouts,但不知道如何訪問它們的drawable。GridView ListActivity的OnPause方法 - Android

這裏是myLayout.XML:

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <ImageView 
      android:id="@+id/icon" 
      android:layout_width="200dp" 
      android:layout_height="200dp" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:padding="8dp" 
      android:scaleType="fitCenter" /> 

    </RelativeLayout> 

ImageAdapter.getView()

public View getView(int position, View convertView, ViewGroup parent) { 
       ViewHolder holder; 
       ImageHelper ih = new ImageHelper(); 
       if (convertView == null) { 
       convertView = mInflater.inflate(R.layout.mylayout, null); 

       holder = new ViewHolder(); 
       holder.icon = (ImageView) convertView.findViewById(R.id.icon); 

       convertView.setTag(holder); 
       } else { 
       holder = (ViewHolder) convertView.getTag(); 
       } 

       holder.icon.setImageBitmap(ih.decodeSampledBitmapFromImagePath(mList.get(position), 150, 150)); 

       return convertView; 
      } 

ViewGridView.OnPause()

@Override 
     protected void onPause() { 
      GridView gridView = (GridView) findViewById(R.id.gridviewViewOutfits); 
      int count = gridView.getCount(); 
      for (int i = 0; i < count; i++) { 
       ImageView v = (ImageView) gridView.getChildAt(i); 
       if (v != null) { 
        if (v.getDrawable() != null) v.getDrawable().setCallback(null); 
       } 
      } 
      super.onPause(); 
     } 

感謝

回答

1

試試這個

ImageView v = (ImageView)((ViewGroup)gridView.getChildAt(i)).getChildAt(0); 
+0

謝謝,我敢肯定,這是正確的異常走,但現在我得到在同一行上一個空指針異常。我最終刪除了onPause和OnDestroy,因爲將回調設置爲null的代碼導致nullPointerexceptions – user3164083

+1

GridView包含僅在屏幕上顯示的視圖。我認爲你試圖訪問不存在的視圖http://developer.android.com/reference/android/view/ViewGroup.html#getChildAt(int) –