2017-06-20 44 views
0

AlertDialogを作成しようとしています。リストビューでクリックした項目を削除するオプションがあります。私は2つのオプションでAlertDialogを取得しますが、それらをクリックするとAlertDialogが閉じ、何も起こりません。 以下のコードは、ありがとうございます。
また、私はポジティブボタン(アイテムを削除する必要があります)を押して、アイテムをもう一度押すと、アプリケーションがクラッシュします。arraylistから項目を削除する

private void registerClickCallBack() { 
    ListNote = (ListView) findViewById(R.id.lv1); 
    ListNote.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> paret, View viewClicked, final int position, long id) { 

      AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 
      builder.setMessage("Notitie verwijderen?") 
        .setCancelable(false) 
        .setPositiveButton("Ja", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          lv.remove(position); 
         } 
        }) 
        .setNegativeButton("Nee", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          dialog.cancel(); 
         } 
        }); 
      AlertDialog alert = builder.create(); 
      alert.show(); 

      ArrayAdapter<String> adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, lv); 
      ListNote.setAdapter(adapter); 
     } 
    }); 
}` 
+0

プログラムをデバッグしようとしましたか?この行に達していますか? 'lv.remove(position);' –

+0

'lv.remove(position)'に 'lv'とは何ですか? – Zakir

+0

@ Zakir lvは、聖職者の名前です。私はarraylistを作った部分を追加することを考えなかった –

答えて

-1

私はあなたがarrayList.RemoveAt(インデックス)

あなたはarrayList.Removeしようとしている(オブジェクト)を探していると確信していますが

削除しようとしているオブジェクトが 'という名前のint型でありますposition 'であり、arrayList(lv)には存在しないため、例外はスローされません。

オブジェクトの削除特定のインデックスと特定のオブジェクトを削除するのに違いがあります。あなたが渡している参照に依存します。

編集:試してみよう

+0

'removeAt'は本当ですか? [こちら](https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#remove(int))、アンドロイドでC#を使用している 'RemoveAt'を参照してください。 –

+0

私はalertdialogのない作業コードを持っていました。このコードでは、lv.remove(position)も使用していました。だから私はそれが問題になるとは思わない –

0

私はすでにそれを理解しました。私はonclickメソッド内のリストビューを編集するのを忘れていました。 arraylistは空でしたが、値はまだリストビューにありました。私はarrayadapterを移動し、今は正常に動作します。

関連する問題