Autore Topic: ListView con elementi switchabili stile rubrica  (Letto 1233 volte)

Offline SalvoCt

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Tablet Asus
  • Sistema operativo:
    Windows 7
ListView con elementi switchabili stile rubrica
« il: 03 Febbraio 2012, 12:17:09 CET »
0
Salve a tutti! sono nuovo del forum! Volevo sottoporvi un mio problema, sperando che mi possiate illumiare ;-).
Voglio realizzare una lista di prodotti dove ogni elemento ha la possibilità di "spostarsi" a destra o a sinistra, come gli elementi della rubrica per intenderci.

Il mio approccio è quello di personalizzare l'evento onFling ma non so come procedere! Inoltre mi sono accorto che con l'utilizzo dell'adapter gli indici non sono univoci!


Cioè se faccio
Codice (Java): [Seleziona]
 View item= getChildAt(index_selected);
 item.setBackgroundColor(Color.argb(125, 255, 0, 0));
Mi cambia il background di più elementi!

Sposto l'intero codice per completezza :)
Codice (Java): [Seleziona]
public class ListViewProduct extends ListView{
       
        public Context context;
        private MyGestureListener myGestureListener;
        public int index_selected=0;
    private int startPosition,endPosition;
        public ListViewProduct(Context context) {
               
                super(context);
                this.context=context;
                 myGestureListener = new MyGestureListener(this.context);
                this.setOnTouchListener(myGestureListener);
                setChoiceMode(ListView.CHOICE_MODE_SINGLE);
                // TODO Auto-generated constructor stub
        }
       
        public ListViewProduct(Context context,AttributeSet att)
        {
                super(context,att);
                this.context=context;
                 myGestureListener = new MyGestureListener(this.context);
                this.setOnTouchListener(myGestureListener);
                setChoiceMode(ListView.CHOICE_MODE_SINGLE);
               
        }
       
        @Override
        public boolean onTouchEvent(MotionEvent e)
        {
                switch(e.getAction())
                {
               
                case MotionEvent.ACTION_DOWN:
                        startPosition=this.pointToPosition((int)e.getX(),(int) e.getY());
                        Log.i("start position",""+startPosition);
                        if(startPosition!=this.INVALID_POSITION)
                                index_selected=startPosition-this.getFirstVisiblePosition();
                        break;
                       
                }
                return super.onTouchEvent(e);
               
        }
        class MyGestureListener extends SimpleOnGestureListener implements OnTouchListener
    {
        Context context;
        GestureDetector gDetector;
        private static final int SWIPE_MIN_DISTANCE = 160;
        // Distanza massima consentita sull'asse Y
        private static final int SWIPE_MAX_OFF_PATH = 400;
        // Velocità minima richiesta sull'asse X
        private static final int SWIPE_THRESHOLD_VELOCITY = 150;
        public MyGestureListener()
        {
            super();
        }

        public MyGestureListener(Context context) {
            this(context, null);
        }

        public MyGestureListener(Context context, GestureDetector gDetector) {

            if(gDetector == null)
                gDetector = new GestureDetector(context, this);

            this.context = context;
            this.gDetector = gDetector;
        }


        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

                try {
                if (Math.abs(e1.getY() - e2.getY()) > dp2px(SWIPE_MAX_OFF_PATH))
                        return false;
                // Swipe da destra a sinistra
                if (e1.getX() - e2.getX() > dp2px(SWIPE_MIN_DISTANCE)
                                && Math.abs(velocityX) > dp2px(SWIPE_THRESHOLD_VELOCITY)) {
                         
                        Log.i("seleziono ",""+index_selected);
                            View item= getChildAt(index_selected);
                             
                             item.setBackgroundColor(Color.argb(125, 255, 0, 0));
                             
                        Toast.makeText(context, "Swipe a sinistra", Toast.LENGTH_SHORT).show();
                } else if (e2.getX() - e1.getX() > dp2px(SWIPE_MIN_DISTANCE)
                                && Math.abs(velocityX) > dp2px(SWIPE_THRESHOLD_VELOCITY)) {
                       
                            View item= getChildAt(index_selected);
                        item.setBackgroundColor(Color.argb(125, 0, 255, 0));
                        Toast.makeText(context, "Swipe a destra", Toast.LENGTH_SHORT).show();
                }
        } catch (Exception e) {
               
        }
        return false;
}
       

        @Override
        public boolean onSingleTapConfirmed(MotionEvent e) {

            return super.onSingleTapConfirmed(e);
        }
       
        public float dp2px(int dip) {
            float scale = getResources().getDisplayMetrics().density;
            return dip * scale + 0.5f;
    }

       
        public boolean onTouch(View v, MotionEvent event) {

               
            return gDetector.onTouchEvent(event);
        }


        public GestureDetector getDetector()
        {
            return gDetector;
        }      
    }
       

}


E l'adapter relativo!
Codice (Java): [Seleziona]
public class ListAdapterProduct extends BaseAdapter{
       
       
        ArrayList<HashMap<String, Object>> data=new ArrayList<HashMap<String,Object>>();
       
        public boolean itemsEnable;
        private Context context;
        private Typeface face;
        private int color;
        private int size;
        private LayoutInflater inflater;
        private boolean isAllEnable;
       
        public ListAdapterProduct(Context c,Typeface face,int color,int size)
        {
                context=c;
                this.face=face;
                this.color=color;
                this.size=size;
                this.isAllEnable=true;
                this.inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }

       
       
        public void setAllEnable(boolean enable){this.isAllEnable=enable; this.notifyDataSetChanged();}
       
        @Override
        public boolean isEnabled(int position)
        {
          return this.isAllEnable;
        }
       
        public int getCount() {
                // TODO Auto-generated method stub
                return data.size();
        }

        public Object getItem(int arg0) {
                // TODO Auto-generated method stub
                return data.get(arg0);
        }

        public long getItemId(int arg0) {
                // TODO Auto-generated method stub
                return arg0;
        }

        public void addItem(HashMap<String,Object> row)
        {
                data.add(row);
                this.notifyDataSetChanged();
        }
        public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder=null;
               
                if(convertView==null)
                {
                        convertView=inflater.inflate(R.layout.single_item_list, null);
                       
                        holder=new ViewHolder();
                        holder.code=(TextView)convertView.findViewById(R.id.code);
                        holder.desc=(TextView)convertView.findViewById(R.id.name);
                        convertView.setTag(holder);
                }
                else
                {
                        holder=(ViewHolder)convertView.getTag();
                }
               
                holder.code.setText(data.get(position).get("code").toString());

                holder.code.setTypeface(this.face);
                holder.code.setTextColor(this.color);
                holder.code.setTextSize(this.size);
               
                holder.desc.setText(data.get(position).get("name").toString());
           
                holder.desc.setTypeface(this.face);
                holder.desc.setTextColor(this.color);
                holder.desc.setTextSize(this.size);
               
                return convertView;
        }
       
        class ViewHolder
        {
                public TextView code;
                public TextView desc;
        }

       

}

Il dispositivo di riferimento è un Tablet con Android 3.2.1!
Grazie a chiunque risponderà!


Offline SalvoCt

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Tablet Asus
  • Sistema operativo:
    Windows 7
Re:ListView con elementi switchabili stile rubrica
« Risposta #1 il: 06 Febbraio 2012, 17:51:40 CET »
0
Nessuno mi può dare una mano? :-(

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
R: ListView con elementi switchabili stile rubrica
« Risposta #2 il: 06 Febbraio 2012, 21:23:17 CET »
0
Io non ho ben capito cosa vuoi fare
Postate il LogCat LogCat LogCat LogCat LogCat

Offline SalvoCt

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Tablet Asus
  • Sistema operativo:
    Windows 7

Offline Verandi

  • Moderatore
  • Utente normale
  • *****
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:ListView con elementi switchabili stile rubrica
« Risposta #4 il: 07 Febbraio 2012, 09:35:23 CET »
0
Il problema del background è dovuto al riciclo delle view dell'adapter, per cui, se setti il background della view in una posizione x, verrà cambiato anche il background in tutte le posizioni in cui quella view verrà riciclata.
Per far sì che cambi solo il background della riga che vuoi, devi aggiungere un array in cui salvi la posizione della riga e, nel getview() dell'adapter controllare in che posizione della lista ti trovi e settare il background di conseguenza.
Se vuoi spostare a destra/sinistra la riga dopo una certa azione, credo tu debba usare un'animazione e usare lo stesso principio dell'array, altrimenti ti ritrovi con l'animazione applicata a più righe. Nel caso, invece, tu voglia spostare la riga a mano a mano che sposti il dito, puoi usare il metodo setX() della classe View, visto che usi un'api >=11, altrimenti mi pare si possa giocare sui margini.

Offline SalvoCt

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Tablet Asus
  • Sistema operativo:
    Windows 7
Re:ListView con elementi switchabili stile rubrica
« Risposta #5 il: 07 Febbraio 2012, 10:38:32 CET »
0
Il problema del background è dovuto al riciclo delle view dell'adapter, per cui, se setti il background della view in una posizione x, verrà cambiato anche il background in tutte le posizioni in cui quella view verrà riciclata.
Per far sì che cambi solo il background della riga che vuoi, devi aggiungere un array in cui salvi la posizione della riga e, nel getview() dell'adapter controllare in che posizione della lista ti trovi e settare il background di conseguenza.
Se vuoi spostare a destra/sinistra la riga dopo una certa azione, credo tu debba usare un'animazione e usare lo stesso principio dell'array, altrimenti ti ritrovi con l'animazione applicata a più righe. Nel caso, invece, tu voglia spostare la riga a mano a mano che sposti il dito, puoi usare il metodo setX() della classe View, visto che usi un'api >=11, altrimenti mi pare si possa giocare sui margini.

Grazie per i consigli!! :) Allora il problema del background l'ho risolto mettendo uno stato per la view (-1,0,1) e in base a esso setto il colore appropriato.
Adesso devo implementare il "trascinamento" speriamo bene !! :D

Offline MarcAlfa

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    API-8
  • Sistema operativo:
    Windows 7
Re:ListView con elementi switchabili stile rubrica
« Risposta #6 il: 23 Luglio 2012, 01:07:19 CEST »
0
Ciao SalvoCt, volevo sapere se alla fine hai risolto questa cosa e se si se puoi darmi qualche consiglio.
Sto cercando di implementare anche io una cosa simile a questa:

Resource for Android Slight Left/Right Slide action on listview - Stack Overflow

A parte il discorso del background e dell'animazione da far vedere (sei riuscito tu alla fine?) su cui sbattero' la testa piu' avanti.... io non riesco a capire bene come intercettare lo "swipe" a destra e a sinistra SOLO dell' ITEM selezionato all'interno della ListView (ho bisogno di sapere infatti l'ID della riga che sto "swippando" per poter richiamare un'activity in maniera corretta).

Praticamente io avrei bisogno che al trascinamento a SINISTRA di un item della ListView mi si apra una nuova activity (a cui passo un valore che sta all'interno dell'item scelto) e al trascinamento a DESTRA dello stesso item mi si apra un'altra activity (a cui passo sempre lo stesso valore preso dall'item su cui sto "swippando").

Spero di essere stato chiaro, non so se devo aprire un altro post, scusate sono nuovo.

Grazie anche se qualcun altro ha consigli in proposito. 

Offline SalvoCt

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Tablet Asus
  • Sistema operativo:
    Windows 7
Re:ListView con elementi switchabili stile rubrica
« Risposta #7 il: 27 Luglio 2012, 17:03:21 CEST »
0
Ciao MarcAlfa, scusa se ti rispondo ora ma ho visto solo ora le email :). Comunque, mi dispiace ma non sono riuscito a trovare una soluzione. Andava tutto lentissimo.

Offline MarcAlfa

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    API-8
  • Sistema operativo:
    Windows 7
Re:ListView con elementi switchabili stile rubrica
« Risposta #8 il: 28 Luglio 2012, 18:12:48 CEST »
0
Ok SalvoCt, grazie per la risposta intanto. Io qualcosina sono riuscito a fare, magari poi quando il tutto funzionerà come dico io postero' il codice.

Offline boccia

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung next
  • Sistema operativo:
    Windows 7
Re:ListView con elementi switchabili stile rubrica
« Risposta #9 il: 30 Agosto 2012, 15:10:06 CEST »
0
Prova questo:


ListeAdapter.java
Codice (Java): [Seleziona]
public class Liste extends ListActivity {

        public final static String TAG = "Liste";



        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.liste);

                               
                /**
                 * @author Loconsole setto valori nella lista
                 */


                ArrayList<String> mImmagine = new ArrayList<String>();
                ArrayList<String> mDescrizione = new ArrayList<String>();
                ArrayList<String> mCorridoio = new ArrayList<String>();
                ArrayList<String> mNegozio = new ArrayList<String>();
                ArrayList<String> mPrezzo = new ArrayList<String>();
                ArrayList<String> mQuantita = new ArrayList<String>();

                mDescrizione.add("asdfasdfcasc wes");
                mDescrizione.add("asdfasdfs");
                mDescrizione.add("asdfasdfs");
                mDescrizione.add("asdfasdfs");
                mDescrizione.add("asdfasdfs");

                mCorridoio.add("1");
                mCorridoio.add("1");
                mCorridoio.add("1");
                mCorridoio.add("1");
                mCorridoio.add("1");

                mNegozio.add("iper");
                mNegozio.add("iper");
                mNegozio.add("iper");
                mNegozio.add("iper");
                mNegozio.add("iper");

                mPrezzo.add("2");
                mPrezzo.add("2");
                mPrezzo.add("2");
                mPrezzo.add("2");
                mPrezzo.add("2");

                mQuantita.add("1");
                mQuantita.add("1");
                mQuantita.add("1");
                mQuantita.add("1");
                mQuantita.add("1");

                setListAdapter(new ListeAdapter(getApplicationContext(),
                                R.layout.liste_list, mImmagine, mDescrizione, mCorridoio,
                                mNegozio, mPrezzo, mQuantita));
        }

       

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

        float historicX = Float.NaN, historicY = Float.NaN;
        static final int TRIGGER_DELTA = 2; // Number of pixels to travel till
                                                                                // trigger

        int posizione;

        private ArrayList<String> mImmagine;
        private ArrayList<String> mDescrizione;
        private ArrayList<String> mCorridoio;
        private ArrayList<String> mNegozio;
        private ArrayList<String> mPrezzo;
        private ArrayList<String> mQuantita;

        Context mCo;

        Bitmap ball;
        float xBall, yBall;

        LinearLayout item;
        TranslateAnimation anim;

        private int mIdRisorsaVista;

        private LayoutInflater mInflater;

        boolean bloccaLong;

        public ListeAdapter(Context co, int IdRisorsaVista,
                        ArrayList<String> immagine, ArrayList<String> descrizione,
                        ArrayList<String> corridoio, ArrayList<String> negozio,
                        ArrayList<String> prezzo, ArrayList<String> quantita) {
                super(co, IdRisorsaVista, descrizione);

                mInflater = (LayoutInflater) co
                                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

                mCo = co;
                mImmagine = immagine;
                mDescrizione = descrizione;
                mCorridoio = corridoio;
                mNegozio = negozio;
                mPrezzo = prezzo;
                mQuantita = quantita;
                mIdRisorsaVista = IdRisorsaVista;

        }

        @Override
        public int getCount() {
                return mDescrizione.size();
        }

        @Override
        public String getItem(int position) {
                return mDescrizione.get(position);
        }

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

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
                convertView = mInflater.inflate(mIdRisorsaVista, null);
                final View items = convertView;

                ball = Bitmap.createBitmap(100, 50, Bitmap.Config.RGB_565);
                ball.eraseColor(Color.BLUE);

                anim = new TranslateAnimation(0, xBall, 0, 0);
                item = (LinearLayout) convertView.findViewById(R.id.item);


                bloccaLong = false;
                convertView.setOnLongClickListener(new OnLongClickListener() {

                        @Override
                        public boolean onLongClick(View v) {
                                if (bloccaLong == false) {
                                        Toast.makeText(
                                                        mCo,
                                                        "LongClick avvenuto cancellando l'item " + position,
                                                        5000).show();

                                        Animation anim = AnimationUtils.loadAnimation(mCo,
                                                        R.anim.alpha_item);
                                        anim.reset();
                                        LinearLayout l = (LinearLayout) items
                                                        .findViewById(R.id.item);
                                        l.clearAnimation();
                                        l.startAnimation(anim);

                                        anim.setAnimationListener(new AnimationListener() {

                                                @Override
                                                public void onAnimationStart(Animation animation) {

                                                }

                                                @Override
                                                public void onAnimationRepeat(Animation animation) {

                                                }

                                                @Override
                                                public void onAnimationEnd(Animation animation) {
                                                        remove(getItem(position));

                                                }
                                        });
                                }

                                return false;
                        }
                });

                convertView.setOnTouchListener(new OnTouchListener() {

                        @Override
                        public boolean onTouch(View v, MotionEvent e) {
                                switch (e.getAction()) {
                                case MotionEvent.ACTION_DOWN:
                                        historicX = e.getX();
                                        historicY = e.getY();
                                       
                                        bloccaLong = false;
                                       
                                        break;
                                case MotionEvent.ACTION_UP:
                                       
                                        bloccaLong = false;
                                       
                                        if (e.getX() > (items.getWidth() / 2))
                                                if (historicX < e.getX())
                                                        Toast.makeText(
                                                                        mCo,
                                                                        "da sinistra a destra dell'item: "
                                                                                        + position, 3000).show();
                                        if (historicX > e.getX())
                                                Toast.makeText(mCo,
                                                                "da destra a  sinistra dell'item: " + position,
                                                                3000).show();
                                        break;
                                case MotionEvent.ACTION_MOVE:
                                       
                                        Log.i("asdf", "x: " + e.getX());
                                        bloccaLong = true;

                                        xBall = e.getX();
                                        yBall = e.getY();
                                       
                                        if (historicX < e.getX()) {
                                               
                                                if (xBall > (items.getWidth() / 2)) {
                                                        anim = new TranslateAnimation(0, items.getWidth(),
                                                                        0, 0);
                                                        anim.setDuration(1000);
                                                        items.findViewById(R.id.item).startAnimation(anim);

                                                        anim.setAnimationListener(new AnimationListener() {

                                                                @Override
                                                                public void onAnimationStart(Animation animation) {
                                                                        // TODO Auto-generated method stub

                                                                }

                                                                @Override
                                                                public void onAnimationRepeat(
                                                                                Animation animation) {
                                                                        // TODO Auto-generated method stub

                                                                }

                                                                @Override
                                                                public void onAnimationEnd(Animation animation) {
                                                                        Toast.makeText(mCo, "Comprato", 300).show();
                                                                        items.findViewById(R.id.item).setBackgroundResource(R.drawable.shape_bought);
                                                                       

                                                                        bloccaLong = false;
                                                                }
                                                        });
                                                } else {
                                                        anim = new TranslateAnimation(0, xBall, 0, 0);
                                                        anim.setDuration(1000);

                                                        items.findViewById(R.id.item).startAnimation(anim);
                                                }
                                        }

                                        break;

                                }
                                return false;
                        }
                });

                TextView titolo = (TextView) convertView.findViewById(R.id.descrione);
                titolo.setText(mDescrizione.get(position));

                TextView corridoio = (TextView) convertView
                                .findViewById(R.id.corridoio);
                corridoio.setText(mCorridoio.get(position));

                TextView negozio = (TextView) convertView.findViewById(R.id.negozio);
                negozio.setText(mNegozio.get(position));

                TextView prezzo = (TextView) convertView.findViewById(R.id.prezzo);
                prezzo.setText(mPrezzo.get(position));

                TextView quantita = (TextView) convertView.findViewById(R.id.quantita);
                quantita.setText(mQuantita.get(position));

                return convertView;
        }

}

inserire in main.xml
Codice (XML): [Seleziona]
 <ListView
           android:id="@android:id/list"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_below="@+id/actionbar_id"
           android:divider="#00ffffff"
           android:dividerHeight="10dp"
           android:padding="10dp">
        </ListView>

e creare un xml chiamandolo liste_list.xml:

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

    <LinearLayout
       xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/item"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:background="@drawable/shape"
       android:orientation="horizontal"
       android:padding="5dp"
       android:weightSum="4" >

        <LinearLayout
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:layout_weight="1.5"
           android:gravity="center" >

            <ImageView
               android:id="@+id/immagine"
               android:layout_width="65dp"
               android:layout_height="65dp"
               android:src="@drawable/logo_la_spesa2" />
        </LinearLayout>

        <LinearLayout
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:layout_weight="1"
           android:orientation="vertical"
           android:weightSum="2" >

            <LinearLayout
               android:layout_width="fill_parent"
               android:layout_height="fill_parent"
               android:layout_weight="1"
               android:gravity="center"
               android:minHeight="20dp"
               android:orientation="horizontal" >

                <TextView
                   android:id="@+id/descrione"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:text="opsdosdjksjkshdv"
                   android:textColor="#000000"
                   android:textSize="25dp" />
            </LinearLayout>

            <LinearLayout
               android:layout_width="fill_parent"
               android:layout_height="fill_parent"
               android:layout_weight="1"
               android:gravity="center"
               android:minHeight="70dp"
               android:orientation="horizontal" >

                <RelativeLayout
                   android:layout_width="fill_parent"
                   android:layout_height="fill_parent" >

                    <LinearLayout
                       android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
                       android:layout_alignParentRight="true"
                       android:layout_centerVertical="true"
                       android:gravity="center"
                       android:orientation="vertical" >

                        <TextView
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:text="negozio"
                           android:textSize="18dp" />

                        <TextView
                           android:id="@+id/negozio"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:text="iper"
                           android:textSize="15dp" />
                    </LinearLayout>

                    <LinearLayout
                       android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
                       android:layout_alignParentLeft="true"
                       android:layout_centerVertical="true"
                       android:gravity="center"
                       android:orientation="vertical" >

                        <TextView
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:text="n.corr."
                           android:textSize="18dp" />

                        <TextView
                           android:id="@+id/corridoio"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:text="1"
                           android:textSize="15dp" />
                    </LinearLayout>
                </RelativeLayout>
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:layout_weight="1.5"
           android:gravity="center"
           android:orientation="vertical" >

            <LinearLayout
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:orientation="horizontal" >

                <TextView
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:text="€"
                   android:textColor="#000000"
                   android:textSize="18dp" />

                <TextView
                   android:id="@+id/prezzo"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:textColor="#000000"
                   android:textSize="15dp" />
            </LinearLayout>

            <LinearLayout
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:orientation="horizontal" >

                <TextView
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:text="(qta: "
                   android:textColor="#000000"
                   android:textSize="18dp" />

                <TextView
                   android:id="@+id/quantita"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:text="7"
                   android:textColor="#000000"
                   android:textSize="15dp" />

                <TextView
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:text=")"
                   android:textColor="#000000"
                   android:textSize="18dp" />
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

</RelativeLayout>

Offline boccia

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung next
  • Sistema operativo:
    Windows 7
Re:ListView con elementi switchabili stile rubrica
« Risposta #10 il: 30 Agosto 2012, 15:12:15 CEST »
0
Se migliorate il mio codice fatemelo sapere :) mi piacerebbe anche a mi migliorarlo :)