2013-10-09 6 views
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" /> 

Я получаю Исключение нулевого указателя в этой строке

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

Просьба помочь

UPDATE

Я изменил код и инициализирован код макета inflatter.The работает отлично, но его дает мне Binary ошибку XML

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

ответ

1

заменить адаптер конструктор с этим:

public MyGeneralFragmentImageAdapter(Context c){ 
    mycontext = c; 
    mInflator = LayoutInflater.from(c); 
} 
+0

Это дает мне двоичную ошибку XML Chiradeep

+0

изменение ImageView в ImageView ..... это будет сделано ... :) – Vikram

+0

счастливым кодирования .. :) – Vikram

1

Вы не инициализировать LayoutInflater :

LayoutInflater mInflater = (context).getLayoutInflater(); 
+0

, где я должен инициализировать? – Chiradeep

+0

вы можете инициализировать его в своем операторе If внутри вашей функции getView –

+0

, а контекст - это функция вызова вашей деятельности, через которую вы можете передать ее через этот класс. Constructor –

1

Вы забыли инициализировать LayoutInflator

mInflater = LayoutInflator.from(context); 

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

попробовать это,

LayoutInflater mInflater 

public MyGeneralFragmentImageAdapter(Context c){ 
mycontext = c; 
mInflater = LayoutInflater.from(c); 
} 
1

Просто потому, что mInflater имеют нулевое значение, поэтому попробуйте этот проход класс деятельности в конструкторе

private LayoutInflater mInflater=null; 

    public MyGeneralFragmentImageAdapter(Activity c){ 
     mInflater= c.getLayoutInflater(); 
    } 

После того, что это справедливо утверждение в GetView

convertView = mInflater.inflate(R.layout.row_grid,parent,false); 
0
// try this way 

convertView =LayoutInflater.from(mycontext).inflate(R.layout.row_grid,parent,false); 
+0

Я получаю двоичную ошибку XML при инициализации ImageView из файла row_grid.xml – Chiradeep

Смежные вопросы