Autore Topic: Come individuare l'elemento selezionato da una lista personalizzata  (Letto 841 volte)

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Ho creato una lista con il seguente codice:


Codice (Java): [Seleziona]
public class NomiList extends Activity {

        private Context context;

        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.nomi_list);

                context = getApplicationContext();

                visualizzaElencoNomi();

                Button bottone_indietro = (Button) findViewById(R.id.test);
                bottone_indietro.setOnClickListener(buttonOnClickTest);

        }

        private void visualizzaElencoNomi() {
                ArrayList<String> listaNomi = new ArrayList<String>();
                listaNomi.add("andrea");
                listaNomi.add("fabio");
                listaNomi.add("marco");

                ListAdapter adapter = new NomiAdapter(context, R.layout.row, listaNomi);

                ListView listView = (ListView) findViewById(R.id.mia_lista);
                listView.setAdapter(adapter);

        }

        private final Button.OnClickListener buttonOnClickTest = new Button.OnClickListener() {
                public void onClick(View v) {

                        ListView lView = (ListView) findViewById(R.id.mia_lista);

                        int elementoSelezionato = lView.getCheckedItemPosition();
                        Log.d("", "elemento selezionato: " + elementoSelezionato);

                        long[] idList = lView.getCheckItemIds();
                        Log.d("", "id list size: " + idList.length);

                }

        };

}

Codice (Java): [Seleziona]
public class NomiAdapter extends ArrayAdapter<String> {

        Context context;

        List<String> items;

        public NomiAdapter(Context aContext, int textViewResourceId,
                        List<String> items) {

                super(aContext, textViewResourceId, items);

                context = aContext;

                this.items = items;

        }

        public View getView(int position, View convertView, ViewGroup parent) {

                View row = convertView;

                if (row == null) {
                        LayoutInflater inflater = (LayoutInflater) context
                                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

                        row = inflater.inflate(R.layout.row, null);

                }
                String nome = items.get(position);

                ((TextView) row.findViewById(R.id.nome)).setText(nome);

                return row;

        }

}

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:background="#ffffff">
        <ListView android:id="@+id/mia_lista" android:layout_height="wrap_content"
                android:layout_width="fill_parent" android:footerDividersEnabled="false"
                android:headerDividersEnabled="false" android:dividerHeight="0dip">
        </ListView>


        <Button android:id="@+id/test" android:layout_height="wrap_content"
                android:layout_width="wrap_content" android:layout_alignParentRight="true"
                android:text="TEST" />
</LinearLayout>

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:id="@+id/row_view_id">

<TextView
   android:id="@+id/nome"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentLeft="true"
   android:textColor="#000000"    
/>

<CheckBox
   android:id="@+id/row_checkbox"
   android:checked="false"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentRight="true"
   
/>
                   
</RelativeLayout>

Seleziono un elemento, premo sul bottone TEST e vorrei vedere l'id dell'elemento selezionato

Purtroppo non lo visualizza infatti nel log della console si legge:

elemento selezionato: -1
id list size: 0

Come lo individuo l'elemento selezionato?