0

これは私のImageaAdapterクラスです

public class MyGeneralFragmentImageAdapter extends BaseAdapter {

   private Context mycontext;
   private LayoutInflater mInflater;

public Integer[] ImageIds = {
        R.drawable.world, R.drawable.us, 
        R.drawable.european_flag

};

public String[] Imagename = {
        "World","USA","Europe"

};

public MyGeneralFragmentImageAdapter(Context c){
    mycontext = c;
}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return ImageIds.length;
}

@Override
public Object getItem(int arg0) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public long getItemId(int arg0) {
    // TODO Auto-generated method stub
    return 0;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    ViewHolder vh;

    if (convertView == null)
    {
    vh = new ViewHolder();
    convertView = mInflater.inflate(R.layout.row_grid,parent,false);
    vh.textview = (TextView)convertView.findViewById(R.id.grid_item_text);
    vh.imageView = (ImageView)convertView.findViewById(R.id.grid_item_image);
    convertView.setTag(vh); 
    }
    else 
    { 
    vh = (ViewHolder) convertView.getTag();  
    }       

    //ImageView imageView = new ImageView(mycontext);
    vh.imageView.setImageResource(ImageIds[position]);
    vh.imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);


    vh.textview.setText(Imagename[position]);


    //imageView.setLayoutParams(new GridView.LayoutParams(100, 100));


    return convertView;

}

static class ViewHolder
{
       TextView textview;
       ImageView imageView;
}

 }

これは私のrow_grid.xmlです

  <LinearLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"

  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:orientation="vertical"
  android:gravity="center_horizontal"
  >

 <Imageview 
   android:id="@+id/grid_item_image"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
 </Imageview>

 <Textview
   android:id="@+id/grid_item_text"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:gravity="center_horizontal"
   android:text="TextView"
   android:textColor="#000000" />

この行で Null Pointer Exception が発生しています

 convertView = mInflater.inflate(R.layout.row_grid,parent,false);

親切に助けて

アップデート

コードを変更し、レイアウト インフレータを初期化しました。コードは正常に動作しますが、バイナリ XML エラーが発生します

<Imageview 
   android:id="@+id/grid_item_image"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">

4

6 に答える 6

1

アダプター コンストラクターを次のコンストラクターに置き換えます。

public MyGeneralFragmentImageAdapter(Context c){
    mycontext = c;
    mInflator = LayoutInflater.from(c);
}
于 2013-10-09T13:00:05.030 に答える
0
// try this way

convertView =LayoutInflater.from(mycontext).inflate(R.layout.row_grid,parent,false);
于 2013-10-09T13:07:22.533 に答える