SherlockFragment 内にある Gridview 画像を更新しようとしています。
アダプターを更新するためのインターフェースを作成しました。しかし、カスタム オーバーライド インターフェイス (onCardTypeSelected) メソッドを使用してビューを呼び出そうとすると、すべてのビューで NullPointerException がスローされます。
自分のレベルで頑張りました。解決策を見つけることができません。以下は私のコード スニペットです。
public class PhotosFragment extends SherlockFragment implements CardSelectionInterface {
private Integer[] mThumbIds = {
R.drawable.thumb_card1,
R.drawable.thumb_card2,
R.drawable.thumb_card3,
R.drawable.thumb_card4
};
View view;
GridView gridView;
String[] cardTypes;
Context context;
public static PhotoImageAdapter photoImageAdapter;
@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.photos_layout,container,false);
gridView = (GridView) view.findViewById(R.id.photogridview);
context = view.getContext();
photoImageAdapter = new PhotoImageAdapter(context, mThumbIds);
gridView.setAdapter(photoImageAdapter); // uses the view to get the context instead of getActivity().
cardTypes = getResources().getStringArray(R.array.card_types);
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
System.out.println("*** Clicked : " + position);
}
});
System.out.println("Returning view");
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
System.out.println("On Activity created");
}
@Override
public void onPause() {
super.onPause();
}
@Override
public void onCardTypeSelected(TypedArray typedArrayImages) {
mThumbIds = new Integer[typedArrayImages.length()];
for (int i = 0; i < typedArrayImages.length(); i++)
mThumbIds[i] = typedArrayImages.getResourceId(i, -1);
this.photoImageAdapter.notifyDataSetChanged();
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
System.out.println("OnAttach");
}
}