Autore Topic: ListView in un Dialog  (Letto 437 volte)

Offline Paso

  • Utente junior
  • **
  • Post: 98
  • Respect: +17
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy sIII mini
  • Sistema operativo:
    Linux Mint 17 64-bit
ListView in un Dialog
« il: 28 Novembre 2013, 19:38:46 CET »
0
Ciao! Ho bisogno di creare una ListView o LinearLayout in un Dialog delle semplici TextView. Una volta clickato su una TextVIew si compie l'azione e la prossima volta che il Dialog viene aperto le TextView già clickate non appaiono più. Per esempio l'"Aggiungi campo" che c'è nell'app Rubrica.
Al momento ho pensato a questo:
Codice (Java): [Seleziona]
final ArrayList<String> option = new ArrayList<String>();

        option.add("Text0");
        option.add("Text1");
        option.add("Text2");
        option.add("Text3");
        option.add("Text4");

        TextView a = (TextView) findViewById(R.id.a);
        a.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final Dialog dialog = new Dialog(MainActivity.this);
                ListView listView = new ListView(MainActivity.this);
                ArrayAdapter<String> dummies = new ArrayAdapter<String>(MainActivity.this, android.R.layout.select_dialog_item, option);
                dialog.setContentView(listView);
                dialog.setTitle("List Title");
                listView.setAdapter(dummies);
                listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        switch (position) {
                            case 0:
                                option.remove("Text0");
                                break;
                            case 1:
                                option.remove("Text1");
                                break;
                            case 2:
                                option.remove("Text2");
                                break;
                            case 3:
                                option.remove("Text3");
                                break;
                            case 4:
                                option.remove("Text4");
                                break;
                        }
                        dialog.dismiss();
                    }
                });
                dialog.show();
            }
        });
Il problema è che quando ricreo il Dialog la posizione si aggiorna e il text2 diventa la posizione 1 e così via. Come posso risolvere??