2017-08-18 4 views
0

チェックボックスが!isCheckedの場合、リストから項目を削除しないとどうなりますか?ListBoxでチェックボックスがオフになっています

このコード:

checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       String str = fajlLista.get(position).getName(); 
       if (isChecked){ 
        kijeloltFajlok.add(new Fajlok(str)); 

        String x = ""; 
        for (Fajlok a : kijeloltFajlok){ 
         x += a.getName() + "\n"; 
        } 
        Toast.makeText(context, x, Toast.LENGTH_SHORT).show(); 
       } 
       else{ 
        kijeloltFajlok.remove(str); 
        String x = ""; 
        for (Fajlok a : kijeloltFajlok){ 
         x += a.getName() + "\n"; 
        } 
        Toast.makeText(context, x, Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }); 

答えて

0

kijeloltFajlokがList、ArrayListなどのオブジェクト(あるオブジェクトのコンテナ)のオブジェクトであるとすると、removeメソッドを使用してリストの項目を削除する場合は、削除するオブジェクトをパラメータとして送信する必要があります。あなたのコードを見ると、あなたがパラメータとしてStringオブジェクト、あなたがこの行で取得する1送信されます。

String str = fajlLista.get(position).getName(); 

をしかし、この文字列配列にできなくなります決して、その後、何のオブジェクトが削除されません。オブジェクトを削除したい場合は、削除するオブジェクトのFajlokをパラメータとして送信する必要があります。

+0

ご協力いただきありがとうございます。私を招待しない場合は、気付かないでしょう。 – Pengewap

0

あなたのif文でnewFajlokを追加しているので、だから私はあなたのリストを推測する 'kijelolFajlokは' タイプFajlokです。 リストから何かを削除しようとすると、Fajlokオブジェクトではなく文字列である 'str'が削除されます。いずれかのFajlokオブジェクト、または文字列を使用しますが、どちらの場合もそうではありません。

関連する問題