1

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");
    }

}
4

0 に答える 0