0

これはAdapter私のGridView中ですDetailFragment

public class MyAdapter extends BaseAdapter {

    Context mContext;

    static final String TAG_SUCCESS = "success";
    static final String TAG_MENU = "menu";
    static final String TAG_MID = "mid";
    static final String TAG_NAME = "name";
    static final String TAG_PICT = "picture";
    static final String TAG_PRICE = "price";

    private LayoutInflater mInflater;
    private static ArrayList<HashMap<String, String>> menuList;

    public MyAdapter(Context c) {
        mContext = c;
        mInflater = LayoutInflater.from(c);

    }

    public void setArrayList(ArrayList<HashMap<String, String>> mlist) {
        menuList = new ArrayList<HashMap<String, String>>();
        menuList = mlist;
        Log.d("Try To Print", menuList.get(0).get(TAG_NAME));
    }

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

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return menuList.get(position);
    }

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

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

        ViewHolder holder = null;

        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.gviewfill, parent, false);
            holder = new ViewHolder();

            holder.ImgView = new ImageView(mContext);
            holder.ImgView.setScaleType(ImageView.ScaleType.CENTER_CROP);

            holder.ImgView = (ImageView) convertView
                    .findViewById(R.id.iv_menu_image);

            holder.txtName = (TextView) convertView
                    .findViewById(R.id.tv_menu_name);
            holder.price = (TextView) convertView
                    .findViewById(R.id.tv_menu_price);

            if (position == 0) {
                convertView.setTag(holder);
            }
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        String uri = new String(menuList.get(position).get(TAG_PICT));

        int resID = convertView.getResources().getIdentifier(uri, "drawable",
                mContext.getPackageName());
        System.out.println("isi res ID " + position + "= " + resID);
        holder.ImgView.setImageResource(resID);

        holder.price.setText("Rp. " + menuList.get(position).get(TAG_PRICE));
        holder.txtName.setText(menuList.get(position).get(TAG_NAME));

        return convertView;
    }

    static class ViewHolder {
        ImageView ImgView;
        TextView txtName;
        TextView price;
    }


このキャプチャをご覧ください。

gridview結果を下にスクロールするとFORCECLOSE

02-25 15:12:32.544: E/AndroidRuntime(502): FATAL EXCEPTION: main
02-25 15:12:32.544: E/AndroidRuntime(502): java.lang.NullPointerException
02-25 15:12:32.544: E/AndroidRuntime(502):  at com.example.android.rssfeed.MyAdapter.getView(MyAdapter.java:116)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.widget.AbsListView.obtainView(AbsListView.java:1949)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.widget.GridView.makeAndAddView(GridView.java:1323)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.widget.GridView.makeRow(GridView.java:328)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.widget.GridView.fillDown(GridView.java:281)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.widget.GridView.correctTooLow(GridView.java:649)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.widget.GridView.fillGap(GridView.java:257)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.widget.AbsListView.trackMotionScroll(AbsListView.java:4408)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.widget.AbsListView.onTouchEvent(AbsListView.java:2896)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.view.View.dispatchTouchEvent(View.java:4609)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1554)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1320)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
02-25 15:12:32.544: E/AndroidRuntime(502):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1710)
02-25 15:12:32.544: E/AndroidRuntime(502):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1265)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.app.Activity.dispatchTouchEvent(Activity.java:2309)
02-25 15:12:32.544: E/AndroidRuntime(502):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1683)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.view.View.dispatchPointerEvent(View.java:4677)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2348)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.view.ViewRoot.handleMessage(ViewRoot.java:2017)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.os.Handler.dispatchMessage(Handler.java:99)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.os.Looper.loop(Looper.java:132)
02-25 15:12:32.544: E/AndroidRuntime(502):  at android.app.ActivityThread.main(ActivityThread.java:4025)
02-25 15:12:32.544: E/AndroidRuntime(502):  at java.lang.reflect.Method.invokeNative(Native Method)
02-25 15:12:32.544: E/AndroidRuntime(502):  at java.lang.reflect.Method.invoke(Method.java:491)
02-25 15:12:32.544: E/AndroidRuntime(502):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
02-25 15:12:32.544: E/AndroidRuntime(502):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
02-25 15:12:32.544: E/AndroidRuntime(502):  at dalvik.system.NativeStart.main(Native Method)

誰かが私のコードの何が問題になっているのか教えてもらえますか?
これでは理解できませんlogcat
。または、誰かがデータベース値を使用し
て作成する方法を教えてもらえますか?gridviewそして、私はこの値を取得する必要がありdialog fragmentます..助けてください..

4

1 に答える 1

0

内容を確認しmenuListます。

if(menuList.get(position) != null) {
   String uri = new String(menuList.get(position).get(TAG_PICT));

    int resID = convertView.getResources().getIdentifier(uri, "drawable",
            mContext.getPackageName());
    System.out.println("isi res ID " + position + "= " + resID);
    holder.ImgView.setImageResource(resID);

    holder.price.setText("Rp. " + menuList.get(position).get(TAG_PRICE));
    holder.txtName.setText(menuList.get(position).get(TAG_NAME));
}
于 2013-02-25T09:10:11.410 に答える