Gecheckte items aus ListView löschen

  • Du hast ja eine ListView.
    dort setzt du den OnItemClickListener drauf.
    Damit kriegst du bei einem Klick auch die Position des Items.
    Also:

    Java
    listview.setOnItemClickListener(new OnItemClickListener(){...});


    P.S.: Es gibt auch OnItemLongClickListener für einen langen Klick.


    ;)

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • wie könnte ich das item dann "markieren" damit wenn man später auf einen delete button drückt die "markierten items" löschen kann.


    //mainLW ist die listview









    mainLW.setOnItemClickListener(new OnItemClickListener(){





    @Override


    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,


    long arg3) {
    //hier item markieren




    }



    });

  • Entweder wie hier schon besprochen:
    Wenn du das Item hast kannst du das im Prinzip markieren und dann auf Klick des Buttons löschen.
    Nachteil: Es wird nicht als markiert angezeigt ohne weiteres.
    Sonst:
    Du benutzt einen MultiChoiceModeListener.
    Hab dir jetzt mal ein Beispiel rausgesucht.
    http://stackoverflow.com/quest…view-item-when-long-click

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • Wenn Du Dir mal ein paar Android 4+ Apps anschaust, wirst Du sehen, dass bei einem LongClick die Ansicht wechselt. Das ListView bekommt dann eben jenen MultiSelection Mode, eine Grafik, die den Selektionsstatus anzeigt und eine angepasste Toolbar beispielsweise mit einem Mülleimer.


    Zur Implementierung des Ganzen gibt es einige Google I/O Videos.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Also mein code sieht bisher so aus:



    List<String> list = new ArrayList<String>();


    ArrayAdapter<String> adapter;



    public void add(){



    final EditText title = new EditText(this);



    new AlertDialog.Builder(this).setTitle("Add new Item")
    .setView(title)
    .setMessage("Item Title:").setNegativeButton("cancel", null)
    .setPositiveButton("ok", new DialogInterface.OnClickListener() {



    @Override
    public void onClick(DialogInterface dialog, int which) {



    String checkbox_title = title.getEditableText().toString();
    list.add(checkbox_title);
    adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_multiple_choice, list);



















    mainLW.setAdapter(adapter);
    }



    public void delet(){
    //was müsste ich hier machen
    }



    ich bin noch ziemlicher java anfänger und hab keine ahnung wie ich das machen kann ich hab mir schon viele exapmples angekugt aber alle nich gecheck 8| das mit dem LongClick würde ich lieber nich machen weil ich eine einfache checklist machen will und ein einfach zu bedienendes user interface machen will(2Buttons 1 add und 1 delet).

  • Habs jetz hingekriegt:










    private void delet() {





    SparseBooleanArray checkedItemPositions = mainLW.getCheckedItemPositions();


    int itemCount = mainLW.getCount();





    for(int i=itemCount-1; i >= 0; i--){


    if(checkedItemPositions.get(i)){


    adapter.remove(list.get(i));


    }


    }


    checkedItemPositions.clear();


    adapter.notifyDataSetChanged();


    }

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!