2017-06-18 7 views
1

リストビューのデータをsharedpreferencesの別のリストビューに渡します。私はアイテムを書くことができます、私はそれらのアイテムを削除することはできません。私はエラーはありませんが、結果はありません。リストビューからアイテムを削除できません

MyActivity

final DataProvider[] providers = gson.fromJson(jsonurun, DataProvider[].class); 
final List<DataProvider> list = Arrays.asList(providers); 

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
      final DataProvider dataProvider = (DataProvider) adapterView.getItemAtPosition(i); 
      AlertDialog.Builder builder = new AlertDialog.Builder(Listele1.this); 
      builder.setMessage("Silinsin mi ?") 
        .setCancelable(false) 
        .setPositiveButton("EVET", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialogInterface, int i) { 
          List<DataProvider> list1 = new ArrayList<DataProvider>(list);//list from 2nd line 
          list1.remove(dataProvider); 
          prefAdapter.notifyDataSetChanged(); 
          prefAdapter.notifyDataSetInvalidated(); 
         } 
        }) 

マイカスタムアダプタはPrefAdapterある

List<DataProvider> list ; 

public PrefAdapter(@NonNull Context context, List<DataProvider> list) { 
    super(context, R.layout.child_layout,list); 
    this.list = list; 
} 

static class LayoutHandler{ 
    TextView ad,fiyat; 
} 

@Override 
public void add(DataProvider dataProvider) { 
    super.add(dataProvider); 
    notifyDataSetChanged(); 
} 

@Override 
public void remove(DataProvider object) { 
    super.remove(object); 
    notifyDataSetChanged(); 
} 

答えて

0

list1を作成するか、またはあなたが何らかの理由でそれを必要とする場合は、あなたがして、アダプタを再作成する必要はありません。それ

あなたはこのように最初のリストを作成する必要があります削除する

list = new ArrayList<>(Arrays.asList(providers)): 
+0

「list.remove(dataProvider)」と書いても、この行から「java.lang.UnsupportedOperationException」というエラーメッセージが表示されます –

+0

ありがとうございます。 –

0

アダプターからアイテムを削除することは決してありません。アダプタの呼び出しを削除し、そこの参照を保持しているので、アダプタのリストも更新してください。

関連する問題