Items löschen aus String Array vom Custom Base Adapter

wer112

Top Contributor
Ich lade ja aus der Datenbank die Werte über ein Base Adapter in die App. Wenn jemand was angeklickt hat, soll es ja auch aus der Datenbank bestimmter Position gelöscht werden. Wenn es gelöscht ist, bekommt Volley die Antwort Okay. Wenn Volley Okay bekommen hat, dann soll auch das Element aus der List View gelöscht werden.
Habe nur was über RecyleView, Array_List gelesen und feste Werte. Aber würde gerne das aus der ListView löschen und dann den BaseAdapter neu aktualliesieren.

Mein Code:

Java:
LinkVisitCustomBaseAdapter linkVisitCustomBaseAdapter = new LinkVisitCustomBaseAdapter(getActivity(), id, linkTitel, link, download);
        listView.setAdapter(linkVisitCustomBaseAdapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long lo) {

                String url = link[position];


                Thread thread = new Thread(new Runnable() {
                    @Override
                    public void run() {

                        try {

                            Intent intent = new Intent();
                            intent.setAction(Intent.ACTION_VIEW);
                            intent.setData(Uri.parse(url));
                            startActivity(intent);

                        } catch (Exception e) {
                            e.printStackTrace();
                            Log.e("Exception Thread:" , e.toString());
                        } finally {

                            getActivity().runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    Toast.makeText(context, "Finish, now Volley", Toast.LENGTH_SHORT).show();

                                    final String url = "----";

                                    RequestQueue queue = Volley.newRequestQueue(context);

                                    StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
                                        @Override
                                        public void onResponse(String response) {

                                            if (response.equals("okay")){

                                                
                                            }else{
                                                AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.AlertDialogTheme);
                                                View view = LayoutInflater.from(context).inflate(R.layout.layout_error_dialog, (ConstraintLayout)getActivity().findViewById(R.id.layoutDialogContainer));
                                                builder.setView(view);
                                                ((TextView)view.findViewById(R.id.textTitle)).setText("Fehlgeschlagen");
                                                ((TextView)view.findViewById(R.id.textView_error)).setText("Leider ist was Fehlgeschlagen.\nInformieren Sie den Support,\nwenn es öfters passiert.");
                                                ((Button)view.findViewById(R.id.buttonAction)).setText(getString(R.string.okay));
                                                ((ImageView)view.findViewById(R.id.image_error)).setImageResource(R.drawable.ic_error);

                                                final AlertDialog alertDialog = builder.create();
                                                alertDialog.setCancelable(false);

                                                view.findViewById(R.id.buttonAction).setOnClickListener(new View.OnClickListener() {
                                                    @Override
                                                    public void onClick(View v) {
                                                        alertDialog.dismiss();
                                                        startActivity(new Intent(context, login.class));

                                                    }
                                                });

                                                if (alertDialog.getWindow() != null){
                                                    alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
                                                }



                                                alertDialog.show();
                                            }

                                        }
                                    }, new Response.ErrorListener() {
                                        @Override
                                        public void onErrorResponse(VolleyError error) {
                                            Log.e("LinkAktuVolleyError", error.toString());
                                        }
                                    }){

                                        @Nullable
                                        @Override
                                        protected Map<String, String> getParams() throws AuthFailureError {
                                            HashMap<String, String> param = new HashMap<>();

                                            return param;
                                        }
                                    };

                                    queue.add(stringRequest);
                                }
                            });

                        }
                    }
                });

                thread.start();

            }
        });

Und die Variablen:

Code:
    Integer[] id;
    String[] linkTitel;
    String[] link;
    Integer[] download;

und der BaseAdapter:

Java:
public class LinkVisitCustomBaseAdapter extends BaseAdapter {

    Context context;
    Integer listID[];
    String listTitel[];
    String listLinks[];
    Integer listDownload[];
    LayoutInflater layoutInflater;

    public LinkVisitCustomBaseAdapter(Context ctx, Integer[] id, String[] linkTitel, String[] link, Integer[] download){

        this.context = ctx;
        this.listID = id;
        this.listTitel = linkTitel;
        this.listLinks = link;
        this.listDownload = download;
        layoutInflater = LayoutInflater.from(ctx);

    }

    @Override
    public int getCount() {
        return listTitel.length;
    }

    @Override
    public Object getItem(int position) {
        return  listTitel[position];
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        convertView = layoutInflater.inflate(R.layout.link_visit_listview, null);
        TextView titel = convertView.findViewById(R.id.textView_listview_titelVisit);
        TextView download = convertView.findViewById(R.id.textView_download_extra);

        Log.e("Position Download", "" + listDownload[position]);

        if(listDownload[position] == 2){
            download.setVisibility(View.VISIBLE);

        }else if(listDownload[position] == 1){
            download.setVisibility(View.INVISIBLE);
        }

        titel.setText(listTitel[position]);



        return convertView;
    }
}

Die Frage ist natürlich, wie lösche ich ein Item, wenn Volley sagt okay, nachdem der Nutzer es angeklickt hat.
Da ich aktuell mich auf BaseAdapter einstellen möchte, da ich ja das evtl. bei meinem App Store auch brauchen kann, das gewissene Apps aus der ListView gelöscht werden muss, weil die gesperrt werden(Jeden Illegaler Anwendung oder Schädliche), Würde ich gerne wissen, wie man dann das löschen kann, wenn man die Positon kennt. In dem jetzigen Fall, wenn man drauf geklickt hat...

ICh hoffe, ihr könnt mir irgendwie weiterhelfen und ich danke mich mal bei euch =)
 

Jw456

Top Contributor
Wenn du die Nachricht „OK“ Daten in der DB gelöscht bekommst solltest du auch die Daten in den 4 Arrays löschen und das neue Zeichen des Liste anstoßen.

Mit invalidateViews()

Denke daran das Elemente in allen vier Arrays zu löschen sind, sonnst stimmt die Reihenfolge nicht mehr.
Deshalb würde ich nicht mit vier Arrays arbeiten, sondern mit einer Daten Klasse arbeiten (OOP). Davon dann ein Array oder Liste halten.
Dann hast du nur ein Objekt was du dem Adapter übergibst.

 

Jw456

Top Contributor
Was ich in dein Code als sinnlos erachte ist das erstellen eine Threads in den OnItemClickListener . Du rufst anschließend gleich wieder der UI-Thread auf und macht jetzt alles im UI.

Den Request schickt Volley in einem Thread ab , und den Respons gibt dir Volley wider im UI .
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
R Inventar und Items auf ein 2D ArrayFeld einfügen Java Basics - Anfänger-Themen 2
S TableView Items werden nicht angezeigt (+Verständnisfragen) Java Basics - Anfänger-Themen 15
J Markierte Items in einer JLIST in einen Ordner verschieben Java Basics - Anfänger-Themen 2
E Werte eines Items? Java Basics - Anfänger-Themen 10
B JList wird nicht aktualisiert bzw hat keine Items Java Basics - Anfänger-Themen 2
D Items in JComboBox überprüfen Java Basics - Anfänger-Themen 3
J JComboBox - Items einfügen und anzeigen Java Basics - Anfänger-Themen 18
A Auf ausgewählte Items der Liste in anderer Methode zugreifen Java Basics - Anfänger-Themen 3
A Liste aller Items einlesen Java Basics - Anfänger-Themen 8
H Leere Zeilen in Textdatei löschen lassen Java Basics - Anfänger-Themen 5
V JSON-Objs aus JSON-Obj filtern und löschen (Manipulation ohne Kenntnis der vollst. Struktur) Java Basics - Anfänger-Themen 12
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Array mit Methode löschen Java Basics - Anfänger-Themen 2
K Wie kann ich "enter" von der Console in Eclipse löschen? Java Basics - Anfänger-Themen 2
E Objekte löschen Java Basics - Anfänger-Themen 9
AkiJou Zeile in 2d Array löschen Java Basics - Anfänger-Themen 2
berserkerdq2 An selbst ersteller txt Datei immer Text dranhängen, ohne den vorherign Text zu löschen Java Basics - Anfänger-Themen 8
berserkerdq2 Überprüfen ob eine Schreibberechtigung auf ein file exisitert bzw. ob man dieses file löschen kann, wie? Java Basics - Anfänger-Themen 9
J Zelleninhalt einer Jtable löschen Java Basics - Anfänger-Themen 2
G Bitte meinen Account löschen Java Basics - Anfänger-Themen 1
javapingu Jeglichen Inhalt einer Textdatei nach Zeile n löschen Java Basics - Anfänger-Themen 8
W Beitrag löschen Java Basics - Anfänger-Themen 1
O Doppelt verkette Liste Element löschen Java Basics - Anfänger-Themen 15
B Objekte, bspw. konkret Arraylists,manuell aus Speicher löschen? Java Basics - Anfänger-Themen 70
M Abfrage j/n und Bildschirm löschen Java Basics - Anfänger-Themen 3
J JTable Spalteninhalt löschen Java Basics - Anfänger-Themen 1
L Methoden ArrayList Werte hinzufügen und löschen Java Basics - Anfänger-Themen 32
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
U Objekte in LinkedList löschen und editieren Java Basics - Anfänger-Themen 14
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
R Löschen und ausgeben eines Teilbaums Java Basics - Anfänger-Themen 3
V_Fynn03 Beliebiges Element in einer Liste löschen (Java)(Lineare Datenstrukturen) Java Basics - Anfänger-Themen 9
V_Fynn03 Lineare Datenstrukturen Element löschen? Java Basics - Anfänger-Themen 2
S Wann buffer löschen? Java Basics - Anfänger-Themen 5
S Windows printerqueue mit Java löschen Java Basics - Anfänger-Themen 3
M Objekt mit eindeutiger ID löschen, das nächste Objekt hat dann diese ID Java Basics - Anfänger-Themen 5
M Image löschen Java Basics - Anfänger-Themen 2
H Objekt aus einem Array löschen Java Basics - Anfänger-Themen 1
O Element aus Array löschen Java Basics - Anfänger-Themen 5
steven789hjk543 Kann ich manche Versionen des jdk löschen? Java Basics - Anfänger-Themen 6
M Sqlite table löschen und daten einfügen Java Basics - Anfänger-Themen 5
E Elemente aus Liste löschen Java Basics - Anfänger-Themen 5
W Map doppelte Values löschen Java Basics - Anfänger-Themen 3
T Löschen in doppelt verketteter Liste Java Basics - Anfänger-Themen 1
A Größten Eintrag aus Binärbaum löschen Java Basics - Anfänger-Themen 4
J am Anfang eines String ein Leerzeichen löschen Java Basics - Anfänger-Themen 6
Z Vocale löschen Java Basics - Anfänger-Themen 3
D B-Baum einfügen und löschen Java Basics - Anfänger-Themen 2
J Elemente in Array speichern, löschen, ... Java Basics - Anfänger-Themen 3
D Werte AVL-Baum löschen Java Basics - Anfänger-Themen 2
M Ordner mit Inhalt löschen Java Basics - Anfänger-Themen 7
M LinkedList elemente löschen Java Basics - Anfänger-Themen 2
R Datei löschen Java Basics - Anfänger-Themen 3
V Durch Methode Objekt löschen Java Basics - Anfänger-Themen 2
P Verbindung von Zwei Kreisen löschen ! Java Basics - Anfänger-Themen 6
D JTable Zeilen löschen Java Basics - Anfänger-Themen 5
I Hilfe beim löschen von Buchstaben. Java Basics - Anfänger-Themen 1
I Hilfe beim löschen schon Buchstaben. Java Basics - Anfänger-Themen 4
J Kann eine .jar sich selber Löschen? Java Basics - Anfänger-Themen 5
D Projekte + Datum + löschen Java Basics - Anfänger-Themen 11
B Methoden Element aus einem Array löschen, Rest nach vorne verschieben? Java Basics - Anfänger-Themen 4
K Element in ArrayList löschen ohne Index zu verschieben Java Basics - Anfänger-Themen 2
O Hilfestellellung bei Rekursivem Löschen Java Basics - Anfänger-Themen 11
N Generischer Binärbaum - löschen Java Basics - Anfänger-Themen 1
P Vector durchsuchen und Elemente löschen Java Basics - Anfänger-Themen 4
G zeichen einer Zeile löschen Java Basics - Anfänger-Themen 4
R [Erledigt]Fehler beim löschen von einzelnen Buchstaben aus StringBuilder Java Basics - Anfänger-Themen 1
F Element aus LinkedList löschen Java Basics - Anfänger-Themen 3
B lanterna einzelne Zeichen aus dem Terminal löschen Java Basics - Anfänger-Themen 0
S jList --> Array einfügen und Liste löschen Java Basics - Anfänger-Themen 5
O Löschen lange pfade...Fehler? Java Basics - Anfänger-Themen 1
O Eclipse Liste Löschen Java Basics - Anfänger-Themen 5
Bluedaishi Dateien Lassen sich unter windows nicht löschen Java Basics - Anfänger-Themen 8
K Klassen Objekte löschen Java Basics - Anfänger-Themen 11
B Methoden BinärBaum als String Knoten löschen Java Basics - Anfänger-Themen 5
D String in Datei suchen und löschen Java Basics - Anfänger-Themen 2
S Grafik löschen Java Basics - Anfänger-Themen 10
L Daten aus Array Feld löschen Java Basics - Anfänger-Themen 2
X Erste Schritte Großschreibung löschen Java Basics - Anfänger-Themen 5
T JTable einzelne Zeilen löschen Java Basics - Anfänger-Themen 3
I Zwei Listen: Wenn nicht vorhanden löschen Java Basics - Anfänger-Themen 4
E Arrayeintrag nach Index löschen und Array kürzen Java Basics - Anfänger-Themen 3
thet1983 g.Graphics löschen? Java Basics - Anfänger-Themen 1
GadgetSofa .txt Datei erstellen und gleich wieder Löschen? Java Basics - Anfänger-Themen 12
P Doppelte Datensätze aus CSV-Datei löschen Java Basics - Anfänger-Themen 17
M Löschen von Objekten während Iteration über Liste Java Basics - Anfänger-Themen 9
M Java Datei soll sich selbst löschen Java Basics - Anfänger-Themen 8
J Baum Knoten löschen Java Basics - Anfänger-Themen 10
T Textdatei Zeile löschen? Java Basics - Anfänger-Themen 4
I Element löschen aus der Liste Java Basics - Anfänger-Themen 2
S Einen Eintrag im Array löschen? Java Basics - Anfänger-Themen 11
J ArrayList Objekt löschen Java Basics - Anfänger-Themen 6
M Variablen Daten aus Array löschen Java Basics - Anfänger-Themen 2
B Klassen Obejekte in Java "Löschen" Java Basics - Anfänger-Themen 11
M ArrayList-Element hinzufügen u. löschen Java Basics - Anfänger-Themen 2
B Ordner leeren/löschen Java Basics - Anfänger-Themen 5
I .txt Datei Zeile löschen. Java Basics - Anfänger-Themen 13
R Doppelte löschen Java Basics - Anfänger-Themen 6
J Klick auf Button -> JFrame öffnet sich erneut. & Datei lässt sich nicht löschen Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben