Autore Topic: estrarre il testo da uno custom spinner(image + text)  (Letto 316 volte)

Offline Aless19g89

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung GT_I8190 (SIII mini) - Android 4.1.2, API16
  • Sistema operativo:
    Window 7 x64
estrarre il testo da uno custom spinner(image + text)
« il: 14 Agosto 2016, 12:36:54 CEST »
0
Salve a tutti, come da titolo il mio stupido problema è quello di dover estrarre un testo selezionato da uno spinner contenente immagini e testo..
Spiego meglio! devo realizzare una activity che sia un modulo di compilazione dati, nello spinner in questione sono presenti sia immagini sia testo correlato alle proprie immagini... Il mio problema è, una volta realizzato come riesco a prelevare il testo accanto all'immagine una volta selezionati? dopo alcune prove riesco solo a puntare al primo della lista e non ad altri.. vi lascio un po di codice...
MainActivity.java
Codice (Java): [Seleziona]
String[] Name={"Text1","Text2","Text3"};
String[] Image={R.drawable.icon1,R.drawable.icon2,R.drawable.icon3};
final Spinner mySpinner = (Spinner)findViewById(R.id.spinner);
            mySpinner.setAdapter(new MyAdapter(this, R.layout.row, Name,Image));
Questo è il codice nel MyAdapter.java
Codice (Java): [Seleziona]
public class MyAdapter extends ArrayAdapter<String>
    {

        public MyAdapter(Context context, int textViewResourceId, String[] objects)
        {
            super(context, textViewResourceId, objects);
        }


        @Override
        public View getDropDownView(int position, View convertView,ViewGroup parent)
        {
            return getCustomView(position, convertView, parent);
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent)
        {
            return getCustomView(position, convertView, parent);
        }

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

            LayoutInflater inflater=getLayoutInflater();
            View row=inflater.inflate(R.layout.row, parent, false);

            TextView label=(TextView)row.findViewById(R.id.name);
            label.setText(Name[position]);

            ImageView icon=(ImageView)row.findViewById(R.id.icon);
            icon.setImageResource(Image[position]);
            if(!(position==-1)){
                label.setText(getContext().getText(position).toString());
            }

            return row;
        }

    }
infine questo è il file row.xml
Codice (Java): [Seleziona]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#000000"
            android:layout_alignTop="@+id/icon"
            android:layout_toRightOf="@+id/icon"
            android:layout_toEndOf="@+id/icon" />

        <ImageView
            android:id="@+id/icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icon"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:layout_marginTop="30dp" />

    </RelativeLayout>

</LinearLayout>