2012-03-09 17 views
0

私は自分のアクティビティでギャラリービューを持っていますが、何が起こって何も表示されず、クラッシュすることはわかりません。上でアンドロイド、ギャラリービューに静止画像とクラッシュが表示されない

アクティビティのメソッドを作成し、私は:

// initializing gallery view with predefined images 
     gallery = (Gallery) findViewById(R.id.gallery); 
     gallery.setAdapter(new ImageAdapter(this)); 
     gallery.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
       Toast.makeText(NewsList.this, "" + position, Toast.LENGTH_SHORT).show(); 
      } 
     }); 

そして別のJavaファイルに、私は次のように、そのための画像アダプタを有する: パブリッククラスImageAdapterはBaseAdapter {

int mGalleryItemBackground; 
private Context mContext; 

private Integer[] mImageIds = { 
     R.drawable.g_adira, 
     R.drawable.g_akim, 
     R.drawable.g_alyah, 
     R.drawable.g_atilia, 
     R.drawable.g_awi, 
     R.drawable.g_estrange, 
     R.drawable.g_hafiz, 
     R.drawable.g_hazama, 
     R.drawable.g_jac, 
     R.drawable.g_kristal, 
     R.drawable.g_shila, 
     R.drawable.g_stacy 
}; 

public ImageAdapter(Context c) { 
    mContext = c; 
    TypedArray attr = mContext.obtainStyledAttributes(R.styleable.HelloGallery); 
    mGalleryItemBackground = attr.getResourceId(R.styleable.HelloGallery_android_galleryItemBackground, 0); 
    attr.recycle(); 

    Log.i("ImageAdapter", "Gallery setupped successfully."); 
} 

public int getCount() { 
    return mImageIds.length; 
} 

public Object getItem(int position) { 
    return position; 
} 

public long getItemId(int position) { 
    return position; 
} 

public View getView(int position, View convertView, ViewGroup parent) { 
    ImageView imageView = new ImageView(mContext); 

    imageView.setImageResource(mImageIds[position]); 
    imageView.setLayoutParams(new Gallery.LayoutParams(150, 120)); 
    imageView.setScaleType(ImageView.ScaleType.FIT_XY); 
    imageView.setBackgroundResource(mGalleryItemBackground); 

    Log.i("ImageAdapter", "Position:" + position); 

    return imageView; 
} 

を拡張}

ギャラリーのXMLコード:

<?xml version="1.0" encoding="utf-8"?> 

<Gallery 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gallery" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" /> 

なぜ動作しないのかわかりません。 logcatでは、私はNULLポインタの例外を取得し、参照する "gallery.setAdapter(新しいImageAdapter(this));"には、コンストラクタに配置されている私のログを参照してください

ご了承ください。おかげ

答えて

0

チェックこのコード

public class GalleryActivity extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Gallery gallery = (Gallery) findViewById(R.id.gallery); 
    gallery.setAdapter(new ImageAdapter(this)); 

    gallery.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
      Toast.makeText(GalleryActivity.this, "" + position, Toast.LENGTH_SHORT).show(); 
     } 
    }); 
} 
    class ImageAdapter extends BaseAdapter { 
     int mGalleryItemBackground; 
     private Context mContext; 

     private Integer[] mImageIds = { 
       R.drawable.sample_1, 
       R.drawable.sample_2, 
       R.drawable.sample_3, 
       R.drawable.sample_4, 
       R.drawable.sample_5, 
       R.drawable.sample_6, 
       R.drawable.sample_7 

     }; 

     public ImageAdapter(Context c) { 
      mContext = c; 
      TypedArray attr = mContext.obtainStyledAttributes(R.styleable.HelloGallery); 
      mGalleryItemBackground = attr.getResourceId(
        R.styleable.HelloGallery_android_galleryItemBackground, 0); 
      attr.recycle(); 
     } 

     public int getCount() { 
      return mImageIds.length; 
     } 

     public Object getItem(int position) { 
      return position; 
     } 

     public long getItemId(int position) { 
      return position; 
     } 

     public View getView(int position, View convertView, ViewGroup parent) { 
      ImageView imageView = new ImageView(mContext); 

      imageView.setImageResource(mImageIds[position]); 
      imageView.setLayoutParams(new Gallery.LayoutParams(150, 100)); 
      imageView.setScaleType(ImageView.ScaleType.FIT_XY); 
      imageView.setBackgroundResource(mGalleryItemBackground); 

      return imageView; 
     } 
    } 
} 
+0

おかげ親愛ラジャ、私はあなたが活動にImageAdapterクラスを置く除いて私のコードとあなたの違いは何であるか理解していませんでした。しかし、私はこのクラスを私の活動に移しましたが、私が知らないnullpointerのために結果がまだクラッシュしています:(ありがとうございました – Hesam

+0

私にあなたのXMLコードを見せてください.. –

+0

ありがとう、貴方のRaja、私は私の投稿を更新しました。ありがとうございます – Hesam

関連する問題