empfangen wurde Ich brauche etwas Hilfe. Ich habe Aktivitäten, bei denen ich Gegenstände erstelle. Als nächstes möchte ich es an das Fragment in der zweiten Aktivität senden, also muss ich es zuerst an diese Aktivität senden (bin ich richtig?). Dies ist, wie ich Artikel erstellen:Element aus Aktivität löschen, nachdem es in Fragment/Lifecycle-Ausgabe
public void savePart() {
Part part = new Part(name,quantity,"","",tag,"","2");
Intent intent = new Intent(this,InvActivity.class);
intent.putExtra("Part", (Serializable) part);
setResult(2,intent);
finish();
}
Dies ist, wie ich es in der zweiten Tätigkeit erhalten:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == 2) {
part = (Part) data.getSerializableExtra("Part");
}
}
I Verfahren haben das Teil in Fragmente zurückzukehren:
public Part getMyData() {
return part;
}
In Fragment onResume() erhalte ich das Part-Objekt, überprüfe, ob ein Objekt mit ähnlichem Code existiert und füge es zur ListView hinzu, wenn nicht:
@Override
public void onResume() {
super.onResume();
List<Part>subList = new ArrayList<>();
if (mActivity.getMyData() != null) {
Part part = mActivity.getMyData();
for(Part parts : mParts) {
if (parts.getCode().contains(part.getCode())) {
subList.add(parts);
}
}
if (subList.size() == 0) {
mParts.add(part);
adapter = new PartAdapter(getContext(), R.layout.part_item, mParts, mActivity, new AdapterCallback() {
@Override
public void onMethodCallback() {
}
});
mPartsLV.setAdapter(adapter);
} else {
Toast.makeText(getContext(), R.string.equipment_exists, Toast.LENGTH_SHORT).show();
}
}
}
Bis jetzt funktioniert alles gut. Elemente werden korrekt hinzugefügt und in ListVIEW im Fragment angezeigt. Hier beginnt das Problem :) In der listView-Zeile habe ich imageView, die ein Element aus ListView löscht.
mDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mParts.remove(part);
notifyDataSetChanged();
}
});
Das toll funktioniert, aber ... wenn Fragment zu onResume kommt zurück (gelöschtes Objekt) zeigt wieder Listview. Das liegt daran, dass ich jedes Mal Teil empfange und überprüfe, ob es in der Liste existiert. Ich denke, ich sollte die Absicht klären, nachdem ich Part from Activity erhalten habe, wo Part erstellt wurde, aber ich weiß nicht wie? Vielleicht eine andere Lösung, bitte?
Sie meinen ich sollte boolean verwenden, um zu überprüfen, ob die Liste aktualisiert wurde? :) – Bartos
Überprüfen Sie die Größe der Liste. Das wird gehen. Und bitte, als akzeptiert markieren, wenn das hilft :) –
Danke! :) es hilft sehr – Bartos