0

私はショッピング アプリケーションを実行しています。各行がリストビューに読み込まれ、各行に削除ボタンがあります。削除ボタンをクリックすると、その位置と行の ID を取得できます。私の問題は、customadapter クラスのボタンの onclick 関数からデータベース関数を呼び出すと、nulpointerexception が発生することです。

私が欲しいのは、選択した行をデータベースから削除することです

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
    Product prod = data.get(pos);
    //String gt=prod.getProductName();
     prodid=prod.getId();
     prod.setId(prodid);

                   //passing id to database class gives NULLPOINTEREXCEPTION when opening database
               dcon.open(); 
               dcon.DoDeleteItem(prodid)

//just to show that button clicked  
Log.i("Delete Button Clicked", "**********");
Toast.makeText(context, "Delete button Clicked"+prodid+"::",
Toast.LENGTH_SHORT).show();


}
});
4

1 に答える 1

0

リスト ビューの行にカスタム レイアウトを使用していて、リストビュー用のカスタム アダプターを作成していると思いますか? そうでない場合は、そうすることをお勧めします。

次にできることは、削除ボタンのタグを、データベースを表すカーソルデータの位置または ID に設定することです。onclick メソッドで、ビューを削除ボタンのクラスにキャストし直します (削除ボタンのクラスとして何を使用したかによって、Button または ImageButton になります)。次に、 を使用してタグを読み取り、整数の位置または ID にキャストし直します。これで、データベースを呼び出すことができます。具体的には削除関数を呼び出して、この位置/ID を渡します。

于 2013-07-19T06:34:58.063 に答える