DBカーソルによるカスタムアダプタのクエリ

次のカスタムアダプタを使用してDBカーソルからMyリストコントロールを設定しています。 なぜスーパーが呼び出されたときにこのコードがコンストラクターでクラッシュするのかを理解できません。

public class ListAdaptor extends SimpleCursorAdapter {

    private Cursor dataCursor;
    private LayoutInflater mInflater;

    class ViewHolder {

        public TextView label   = null;
        public CheckBox chkBx   = null;
        public TextView price   = null;
        public TextView weight  = null;
    }


    //constructor
    public ListAdaptor(Context context, int layout, Cursor dataCursor, String[] from, int[] to) {

        super(context, layout, dataCursor, from, to);
        this.dataCursor = dataCursor;
        mInflater = LayoutInflater.from(context);
    }

    public View getView(int position, View convertView, ViewGroup parent) {

       //A ViewHolder keeps references to children views to avoid unneccessary calls
       //to findViewById() on each row.
        ViewHolder holder;

       //When convertView is not null, we can reuse it directly, there is no need
       //to reinflate it. We only inflate a new View when the convertView supplied
       //by ListView is null.

        if (convertView == null) {

           //Inflate the view
            convertView = mInflater.inflate(R.layout.listviewlyt, null);

           //Get the ID's of the views
            TextView tmpLbl     = (TextView)convertView.findViewById(R.id.label);
            CheckBox tmpChkBx   = (CheckBox)convertView.findViewById(R.id.chkbox);
            TextView tmpPrc     = (TextView)convertView.findViewById(R.id.labelPrice);
            TextView tmpWt      = (TextView)convertView.findViewById(R.id.labelWt);


           //Creates a ViewHolder and store references to the two children views
           //we want to bind data to.
            holder = new ViewHolder();

            holder.label    = tmpLbl;
            holder.chkBx    = tmpChkBx;
            holder.price   = tmpPrc;
            holder.weight  = tmpWt;

           //Set the Tag
            convertView.setTag(holder);

        } 
        else {
           //Get the ViewHolder back to get fast access to the TextView
           //and the ImageView.
            holder = (ViewHolder) convertView.getTag();
        }

       //Bind the data efficiently with the holder.
       //Cursor to current item

        dataCursor.moveToPosition(position);
        String keyWrd = dataCursor.getString(2);
        String price  = dataCursor.getString(3);

        TextView labelRef   = holder.label;
        CheckBox chbxRef    = holder.chkBx;
        TextView labelPrc   = holder.price;
        TextView labelWt    = holder.weight;

        labelRef.setText(keyWrd);
        labelPrc.setText(price);
        //chbxRef.setChecked(refObj.flag);
        //labelWt.setText(refObj.wt);

        return convertView;
    }
}

誰かが理由を見つけるのを助けることができますか?

0
追加された 編集された
ビュー: 1
例外は何ですか?
追加された 著者 Rajdeep Dua,
エラーログを投稿してください。
追加された 著者 hovanessyan,
スレッド:[<3>メイン](一時停止)ActivityThread.performLaunchActivity(ActivityThread $ Activ&zwnj; ityRecord、Intent)行:2494 ActivityThread.handleLaunchActivity(ActivityThread $ Activi&zwnj; tyRecord、Intent)行:2512 ActivityThread.access $ 2200(ActivityThread、ActivityThread $ ActivityRecord、Intent)行:119 ActivityThread $ H.handleMessage(メッセージ)行:1863 ActivityThread $ H(ハンドラ).dispatchMessage(メッセージ)行:99 Looper.loop()行:123 ActivityThread.main(String [])行:4363
追加された 著者 Phoenix,

1 答え

Most probably this line might be giving issues

mInflater = LayoutInflater.from(context);
0
追加された
Rajdeepありがとうございました。私はこれを考え出した。問題はカーソルが機能していなかったために自分のDBに_Idを使用していないことでした。また、CusrorAdaptorからアダプタクラスを拡張し、BindViewメンバ関数とNewViewメンバ関数をオーバーライドする方が簡単であることがわかりました。
追加された 著者 Phoenix,