Autore Topic: Modificare colore di un singolo item Listview se accade qualcosa  (Letto 1218 volte)

Offline lpfabio

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s3
  • Sistema operativo:
    Mac OS X 10.8
0
Salve ho una listView composta con SimpleAdapter.
Alla crezione di questa listView vorrei fare un controllo (if) e se un elemento soddisfa quella condizione cambiare il colore e rendere non cliccabile quell item.
Al momento il controllo lo fa quando clicco sull'elemento ma io voglio che il colore venga impostato alla creazione della listview.
posto parte del codice
Codice (Java): [Seleziona]
ListAdapter adapter = new SimpleAdapter(
                                                        Merchandiser.this, productsList,
                                                        R.layout.list_item, new String[] { "id",
                                                                        "report","campo1","tipo1","campo2","tipo2","campo3","tipo3","campo4","tipo4","salvato"},
                                                        new int[] { R.id.pid, R.id.name, R.id.campo1,R.id.tipo1,R.id.campo2,R.id.tipo2,R.id.campo3,R.id.tipo3,R.id.campo4,R.id.tipo4,R.id.salvato});
                                           ListView listView = (ListView)findViewById(R.id.listView);
                                           TextView salvatoView =(TextView) findViewById(R.id.salvato);
                                           String salvatoId=salvatoView.getText().toString();
                                           TextView viewReport =(TextView) findViewById(R.id.name);
                                           if (salvatoId.equals("1")){
                                                viewReport.setBackgroundColor(Color.RED);
                                               
                                               
                                               
                                        }
                                           
                                               
                                           
                                       listView.setAdapter(adapter);
                                     
                                       
                                       
                                    // launching Edit Product Screen
                                        listView.setOnItemClickListener(new OnItemClickListener() {

                                                @Override
                                                public void onItemClick(AdapterView<?> parent, View view,
                                                                int position, long id) {
                                                       
                                                        // getting values from selected ListItem
                                                        String pid = ((TextView) view.findViewById(R.id.pid)).getText().toString();
                                                        String reportL = ((TextView) view.findViewById(R.id.name)).getText().toString();
                                                        String campo1L = ((TextView) view.findViewById(R.id.campo1)).getText().toString();
                                                        String tipo1L = ((TextView) view.findViewById(R.id.tipo1)).getText().toString();
                                                        String campo2L= ((TextView) view.findViewById(R.id.campo2)).getText().toString();
                                                        String tipo2L = ((TextView) view.findViewById(R.id.tipo2)).getText().toString();
                                                        String campo3L = ((TextView) view.findViewById(R.id.campo3)).getText().toString();
                                                        String tipo3L = ((TextView) view.findViewById(R.id.tipo3)).getText().toString();
                                                        String campo4L = ((TextView) view.findViewById(R.id.campo4)).getText().toString();
                                                        String tipo4L = ((TextView) view.findViewById(R.id.tipo4)).getText().toString();
                                                       
                                                        TextView viewReport =(TextView) findViewById(R.id.name);
                                                       
                                                       
                                                       
                                                        // Starting new intent
                                                        Intent in = new Intent(getApplicationContext(),
                                                                        Report.class);
                                                        // sending pid to next activity
                                                       
                                                        in.putExtra("id", pid);
                                                        in.putExtra("report", reportL);
                                                        in.putExtra("campo1", campo1L);
                                                        in.putExtra("tipo1", tipo1L);
                                                        in.putExtra("campo2", campo2L);
                                                        in.putExtra("tipo2", tipo2L);
                                                        in.putExtra("campo3", campo3L);
                                                        in.putExtra("tipo3", tipo3L);
                                                        in.putExtra("campo4", campo4L);
                                                        in.putExtra("tipo4", tipo4L);
                                               
                                                        // starting new activity and expecting some response back
                                                        startActivityForResult(in, 100);}
                                               
                                        });

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Modificare colore di un singolo item Listview se accade qualcosa
« Risposta #1 il: 27 Giugno 2013, 14:05:40 CEST »
0
Io farei un adapter custom estendendo SimpleAdapter e usandolo al posto del SimpleAdapter.

Ti basta sovrascrivere il suo metodo getView

Codice (Java): [Seleziona]
public class MySimpleAdatper extends SimpleAdapter {
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
    if(convertView!=null)
       resetConvertView(convertView);
    View view = super.getView(position, convertView, parent);
    // modifica ai componenti del layout list_item a seconda del controllo
    //...

    return view;
  }

  /**
   * Reset dei componenti della vista passata (che presumo sia R.layout.list_item) ai colori/impostazioni
   * di default
   */

  protected void resetConvertView(View view) {
    // reset dei colori di default per l'elemento
    //...
  }
}

Occhio al metodo di reset della convert view.
Quando android chiama il getView da un adapter può passargli una vista dell'item da riutilizzare (tipicamente quelle che non sono più visibili all'utente) per evitare di sovraccaricare la memoria. Se ti passa una view per il riutilizzo va reimpostata ai suoi valori di defult (come se fosse creata ex novo) o ti rimangono impostati colori e variazioni eventualmente impostati precedentemente.

Offline lpfabio

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s3
  • Sistema operativo:
    Mac OS X 10.8
Re:Modificare colore di un singolo item Listview se accade qualcosa
« Risposta #2 il: 27 Giugno 2013, 14:57:50 CEST »
0
Grazie per la risposta repentina.
Quando inserisco la class MySimpleAdapter mi da errore e di aggiungere in costruttore

   public SimpleAdatper(Context context,
            List<? extends Map<String, ?>> data, int resource,
            String[] from, int[] to) {
         super(context, data, resource, from, to);

Non so come procedere

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Modificare colore di un singolo item Listview se accade qualcosa
« Risposta #3 il: 27 Giugno 2013, 15:13:56 CEST »
0
Aggiungi il costruttore che richiede e limitati a chiamare il super ripassandogli tutti i parametri, evidentemente il costruttore senza parametri di default è privato.

Offline lpfabio

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s3
  • Sistema operativo:
    Mac OS X 10.8
Re:Modificare colore di un singolo item Listview se accade qualcosa
« Risposta #4 il: 27 Giugno 2013, 15:23:19 CEST »
0
Scusami tanto per il fastidio ma non sono molto pratico di android mi potresti scrivere il codice come dovrebbe essere o per lo meno i dati da inviare al costruttore?

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Modificare colore di un singolo item Listview se accade qualcosa
« Risposta #5 il: 27 Giugno 2013, 16:11:40 CEST »
0
Codice (Java): [Seleziona]
import java.util.List;
import java.util.Map;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SimpleAdapter;

public class MySimpleAdatper extends SimpleAdapter {
          public MySimpleAdatper(Context context,
                        List<? extends Map<String, ?>> data, int resource, String[] from,
                        int[] to) {
                super(context, data, resource, from, to);
        }

        @Override
          public View getView(int position, View convertView, ViewGroup parent) {
            if(convertView!=null)
               resetConvertView(convertView);
            View view = super.getView(position, convertView, parent);
            // modifica ai componenti del layout list_item a seconda del controllo
            //...

            return view;
          }

          /**
           * Reset dei componenti della vista passata (che presumo sia R.layout.list_item) ai colori/impostazioni
           * di default
           */

          protected void resetConvertView(View view) {
            // reset dei colori di default per l'elemento
            //...
          }
        }

Da usare al posto del SimpleAdapter:
Codice (Java): [Seleziona]
ListAdapter adapter = new MySimpleAdapter(
                Merchandiser.this, productsList,
                R.layout.list_item, new String[] { "id",
                                "report","campo1","tipo1","campo2","tipo2","campo3","tipo3","campo4","tipo4","salvato"},
                new int[] { R.id.pid,R.id.name,R.id.campo1,R.id.tipo1,R.id.campo2,R.id.tipo2,R.id.campo3,R.id.tipo3,R.id.campo4,R.id.tipo4,R.id.salvato});

Così com'è si comporterà esattamente come un SimpleAdapter che già usi, ma in getView puoi operare i cambiamenti del caso al layout prima di visualizzare l'elemento nella lista.

ad es:
Codice (Java): [Seleziona]
public View getView(int position, View convertView, ViewGroup parent) {
            //...
            View view = super.getView(position, convertView, parent);
            // modifica ai componenti del layout list_item a seconda del controllo

            // recupero l'elemento corrispondente alla posizione che devo visualizzare
            Map<String, Object> item = (Map<String, Object>)getItem(position);
            // recupero il valore che mi interessa e controllo
            Object salvatoValue = item.get("salvato");
            if("1".equals(salvatoValue)) {
                // se il controllo è soddisfatto cambio il background color di un campo
                ((TextView)convertView.findViewById(R.id.pid)).setBackgroundColor(android.R.color.holo_blue_light);
            }
            //...

Offline lpfabio

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s3
  • Sistema operativo:
    Mac OS X 10.8
Re:Modificare colore di un singolo item Listview se accade qualcosa
« Risposta #6 il: 27 Giugno 2013, 16:35:48 CEST »
0
Codice (Java): [Seleziona]
     String[] valori= { "id","report","campo1","tipo1","campo2","tipo2","campo3","tipo3","campo4","tipo4"};
                                               int[] posizioni= { R.id.pid, R.id.name, R.id.campo1,R.id.tipo1,R.id.campo2,R.id.tipo2,R.id.campo3,R.id.tipo3,R.id.campo4,R.id.tipo4};
                                               
                                         new MySimpleAdatper(Merchandiser.this, productsList, R.layout.list_item, valori, posizioni);
                                       //listView.setAdapter(adapter);
                                    // launching Edit Product Screen
                                        listView.setOnItemClickListener(new OnItemClickListener() {

                                                @Override
                                                public void onItemClick(AdapterView<?> parent, View view,
                                                                int position, long id) {
                                                       
                                                        // getting values from selected ListItem
                                                        String pid = ((TextView) view.findViewById(R.id.pid)).getText().toString();
                                                        String reportL = ((TextView) view.findViewById(R.id.name)).getText().toString();
                                                        String campo1L = ((TextView) view.findViewById(R.id.campo1)).getText().toString();
                                                        String tipo1L = ((TextView) view.findViewById(R.id.tipo1)).getText().toString();
                                                        String campo2L= ((TextView) view.findViewById(R.id.campo2)).getText().toString();
                                                        String tipo2L = ((TextView) view.findViewById(R.id.tipo2)).getText().toString();
                                                        String campo3L = ((TextView) view.findViewById(R.id.campo3)).getText().toString();
                                                        String tipo3L = ((TextView) view.findViewById(R.id.tipo3)).getText().toString();
                                                        String campo4L = ((TextView) view.findViewById(R.id.campo4)).getText().toString();
                                                        String tipo4L = ((TextView) view.findViewById(R.id.tipo4)).getText().toString();
                                                       
                                                        TextView viewReport =(TextView) findViewById(R.id.name);
                                                       
                                                        // Starting new intent
                                                        Intent in = new Intent(getApplicationContext(),
                                                                        Report.class);
                                                        // sending pid to next activity
                                                       
                                                        in.putExtra("id", pid);
                                                        in.putExtra("report", reportL);
                                                        in.putExtra("campo1", campo1L);
                                                        in.putExtra("tipo1", tipo1L);
                                                        in.putExtra("campo2", campo2L);
                                                        in.putExtra("tipo2", tipo2L);
                                                        in.putExtra("campo3", campo3L);
                                                        in.putExtra("tipo3", tipo3L);
                                                        in.putExtra("campo4", campo4L);
                                                        in.putExtra("tipo4", tipo4L);
                                               
                                                        // starting new activity and expecting some response back
                                                        startActivityForResult(in, 100);}
                                               
                                        });
                                       
                                       
                                       
                                }
                        });

                }

        }
       
        public class MySimpleAdatper extends SimpleAdapter {
        public MySimpleAdatper(Context context,
                      List<? extends Map<String, ?>> data, int resource, String[] from,
                      int[] to) {
              super(context, data, resource, from, to);
      }

      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
          //...
          View view = super.getView(position, convertView, parent);
          // modifica ai componenti del layout list_item a seconda del controllo

          // recupero l'elemento corrispondente alla posizione che devo visualizzare
          Map<String, Object> item = (Map<String, Object>)getItem(position);
          // recupero il valore che mi interessa e controllo
          Object salvatoValue = item.get("salvato");
          if("1".equals(salvatoValue)) {
              // se il controllo è soddisfatto cambio il background color di un campo
              ((TextView)convertView.findViewById(R.id.pid)).setBackgroundColor(Color.RED);
          }
          return view;
        }

        /**
         * Reset dei componenti della vista passata (che presumo sia R.layout.list_item) ai colori/impostazioni
         * di default
         */

        protected void resetConvertView(View view) {
          // reset dei colori di default per l'elemento
          //...
        }
      }

Non mi visualizza nulla ...

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Modificare colore di un singolo item Listview se accade qualcosa
« Risposta #7 il: 27 Giugno 2013, 16:42:34 CEST »
0
Non mi visualizza nulla ...

Difficile che lo faccia se crei l'adapter senza appoggiarlo ad una variabile da assengare alla lista  :-P

Codice (Java): [Seleziona]
new MySimpleAdatper(Merchandiser.this, productsList, R.layout.list_item, valori, posizioni);
//listView.setAdapter(adapter);

Forse volevi scrivere:
Codice (Java): [Seleziona]
SimpleAdatper adapter = new MySimpleAdatper(Merchandiser.this, productsList, R.layout.list_item, valori, posizioni);
listView.setAdapter(adapter);

Offline lpfabio

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s3
  • Sistema operativo:
    Mac OS X 10.8
Re:Modificare colore di un singolo item Listview se accade qualcosa
« Risposta #8 il: 27 Giugno 2013, 16:51:29 CEST »
0
Sto proprio fuso XD è da sta mattina che ci lavoro su .
Cmq il salvato mi da null.
naturalmente ho aggiunto "salvato" nei valori e l'id nelle posizioni

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Modificare colore di un singolo item Listview se accade qualcosa
« Risposta #9 il: 27 Giugno 2013, 16:54:03 CEST »
0
Sto proprio fuso XD è da sta mattina che ci lavoro su .
Cmq il salvato mi da null.
naturalmente ho aggiunto "salvato" nei valori e l'id nelle posizioni
Almeno ti entra ad eseguire quello che dovrebbe  :-P
Tieni conto che non l'ho provato ma ho scritto abbastanza a "braccio" (anche perché non ho idea di cosa effettivamente metti nella lista e che effetto di preciso vuoi ottenere). La strada però è quella: per cui armati di santa pazienza, tanti log e dacci sotto col debug.  :-)

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:Modificare colore di un singolo item Listview se accade qualcosa
« Risposta #10 il: 27 Giugno 2013, 16:59:59 CEST »
0
Scusa una cosa Fabio, ma questa lista che hai sarà sempre uguale o cambierà? Quindi se non ho capito male, nel momento in cui carichi la lista fai il controllo e poi ogni volta che clicchi sull'elemento vuoi che quell'elemento diventi rosso e non sia + cliccabile giusto?

Offline lpfabio

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s3
  • Sistema operativo:
    Mac OS X 10.8
Re:Modificare colore di un singolo item Listview se accade qualcosa
« Risposta #11 il: 27 Giugno 2013, 17:06:39 CEST »
0
No in pratica i dati li riceve da DB mysql tramite JSon e quindi nel momento in cui salvato(ricevuto dal db) è uguale ad uno alla creazione della listview( che viene richiamato da asynkTask dopo aver scaricato i dati da db) il campo salvato dovra essere rosso e non cliccabile .
cmq l'errore me lo da qui
Codice (Java): [Seleziona]
((TextView)convertView.findViewById(R.id.name)).setBackgroundColor(Color.RED);
Codice: [Seleziona]
06-27 16:58:05.290: E/AndroidRuntime(27576): FATAL EXCEPTION: main
06-27 16:58:05.290: E/AndroidRuntime(27576): java.lang.NullPointerException
06-27 16:58:05.290: E/AndroidRuntime(27576):         at com.example.promotechevo.Merchandiser$MySimpleAdatper.getView(Merchandiser.java:347)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.widget.AbsListView.obtainView(AbsListView.java:2461)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.widget.ListView.makeAndAddView(ListView.java:1775)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.widget.ListView.fillDown(ListView.java:678)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.widget.ListView.fillFromTop(ListView.java:739)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.widget.ListView.layoutChildren(ListView.java:1628)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.widget.AbsListView.onLayout(AbsListView.java:2296)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.View.layout(View.java:14055)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.ViewGroup.layout(ViewGroup.java:4604)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.View.layout(View.java:14055)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.ViewGroup.layout(ViewGroup.java:4604)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1655)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1513)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.widget.LinearLayout.onLayout(LinearLayout.java:1426)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.View.layout(View.java:14055)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.ViewGroup.layout(ViewGroup.java:4604)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.widget.RelativeLayout.onLayout(RelativeLayout.java:948)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.View.layout(View.java:14055)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.ViewGroup.layout(ViewGroup.java:4604)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.View.layout(View.java:14055)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.ViewGroup.layout(ViewGroup.java:4604)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1655)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1513)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.widget.LinearLayout.onLayout(LinearLayout.java:1426)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.View.layout(View.java:14055)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.ViewGroup.layout(ViewGroup.java:4604)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.View.layout(View.java:14055)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.ViewGroup.layout(ViewGroup.java:4604)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1992)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1813)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1112)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4472)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.Choreographer.doCallbacks(Choreographer.java:555)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.Choreographer.doFrame(Choreographer.java:525)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.os.Handler.handleCallback(Handler.java:615)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.os.Handler.dispatchMessage(Handler.java:92)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.os.Looper.loop(Looper.java:137)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at android.app.ActivityThread.main(ActivityThread.java:4898)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at java.lang.reflect.Method.invokeNative(Native Method)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at java.lang.reflect.Method.invoke(Method.java:511)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
06-27 16:58:05.290: E/AndroidRuntime(27576):         at dalvik.system.NativeStart.main(Native Method)


Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Modificare colore di un singolo item Listview se accade qualcosa
« Risposta #12 il: 27 Giugno 2013, 17:09:58 CEST »
0
Com'è fatto il layout di list_item.xml?

Offline lpfabio

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s3
  • Sistema operativo:
    Mac OS X 10.8
Re:Modificare colore di un singolo item Listview se accade qualcosa
« Risposta #13 il: 27 Giugno 2013, 17:11:15 CEST »
0
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:orientation="vertical" >

    <!-- Product id (pid) - will be HIDDEN - used to pass to other activity -->
    <TextView
       android:id="@+id/pid"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:visibility="gone" />
     <TextView
       android:id="@+id/campo1"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:visibility="gone" />
      <TextView
       android:id="@+id/tipo1"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:visibility="gone" />
       <TextView
       android:id="@+id/campo2"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:visibility="gone" />
        <TextView
       android:id="@+id/tipo2"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:visibility="gone" />
         <TextView
       android:id="@+id/campo3"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:visibility="gone" />
          <TextView
       android:id="@+id/tipo3"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:visibility="gone" />
           <TextView
       android:id="@+id/campo4"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:visibility="gone" />
            <TextView
       android:id="@+id/tipo4"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:visibility="gone" />

                  <TextView
       android:id="@+id/salvato"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:visibility="gone" />

    <!-- Name Label -->

    <TextView
       android:id="@+id/name"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:paddingLeft="6dip"
       android:paddingTop="6dip"
       android:textStyle="bold"
       android:textAppearance="?android:attr/textAppearanceLarge"/>



</LinearLayout>

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:Modificare colore di un singolo item Listview se accade qualcosa
« Risposta #14 il: 27 Giugno 2013, 17:15:35 CEST »
0
Ma se la risposta ti arriva tramite JSONObject, perchè la tua lista è fissa?