Hier ist mein Code und ich weiß nicht, warum die Daten immer gelöscht werden, wenn ich die add oder remove-Methode von CustomAdapter verwende, die ArrayAdapter erweitert.Wie kann ich verhindern, dass ListView Daten beim Hinzufügen oder Entfernen von Elementen von ListView löscht?
public class SetFragment extends Fragment {
private CustomAdapter listAdapter = null;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.set_fragment , container , false);
List<String> num_set= new ArrayList<>();
num_set.add("Set1");
listAdapter = new CustomAdapter(getActivity(), num_set);
ListView listView = (ListView)view.findViewById(R.id.setListView);
listView.setAdapter(listAdapter);
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
listAdapter.remove(listAdapter.getItem(position));
listAdapter.notifyDataSetChanged();
return false;
}
});
return view;
}
public void addListData(String entry) {
int numsets = listAdapter.getCount()+1;
listAdapter.add(entry+numsets);
}
}
public class CustomAdapter extends ArrayAdapter<String> {
public CustomAdapter(Context context, List<String> num_set) {
super(context, R.layout.custom_row_for_set ,num_set);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater buclysInflater = LayoutInflater.from(getContext());
View CustomView = buclysInflater.inflate(R.layout.custom_row_for_set ,parent , false);
String setNum = getItem(position);
TextView setText = (TextView)CustomView.findViewById(R.id.setTExtView);
setText.setText(setNum);
return CustomView;
}
}
, wenn ich die set-Taste klicken, werden die Daten nur geht away.I es behalten wollen. Wie kann ich das tun ?? können Sie sich die beigefügten Bilder ansehen.
Wenn Sie Ihre Daten behalten möchten, sollten Sie SQLite verwenden. –
ja krank versuchen, das zu tun @ – RegJo