CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: megthebest con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: carotix con ben 4 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 21 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 10 su 10
Discussione:

Inserire piu adapter in custom listview

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Jul 2015
    Messaggi
    49

    Ringraziamenti
    4
    Ringraziato 2 volte in 2 Posts
    Predefinito

    Inserire piu adapter in custom listview

    salve, questo è il mio problema.. ho fatto due query le quali dovrebberò nella mia applicazione visualizzarmi i valori in due textview differenti nella listview.
    solo che visualizzo solo un adapter e non entrambe.. sapete dirmi come procedere

    x
     
    1
    Cursor r = db.rawQuery("SELECT nome FROM ingredienti WHERE _id=?", new String[]{c.getString(0)});
    2
                    r.moveToFirst();
    3
                    for (int i = 0; i < r.getCount(); i++) {
    4
                        Log.d("idpadre", (r.getString(0) + c.getString(0) + r.getCount()));
    5
                        listp.add(r.getString(0));
    6
                        r.moveToNext();
    7
                    }
    8
                    c.moveToNext();
    9
    10
    11
                    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.row_salsicce, R.id.textViewList, listp);
    12
                    listView.setAdapter(adapter);
    13
                }
    14
                 //valore
    15
                Cursor a = db.rawQuery("SELECT valore FROM unioneingredienti WHERE idfiglio=?", new String[]{id_figlio});
    16
                a.moveToFirst();
    17
                final ArrayList<String> list_valore = new ArrayList<String>();
    18
                for (int z = 0; z < a.getCount(); z++) {
    19
                    list_valore.add(a.getString(0));
    20
                        a.moveToNext();
    21
                    }
    22
                  final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.row_salsicce, R.id.textViewList, listp);
    23
                    final ArrayAdapter<String> adaper = new ArrayAdapter<String>(this, R.layout.row_salsicce, R.id.textViewnum, list_valore);
    24
    25
              <b>  listView.setAdapter(?);</b>

  2.  
  3. #2
    Androidiani Power User L'avatar di Crotan


    Registrato dal
    Jul 2013
    Località
    Roma
    Messaggi
    1,265
    Smartphone
    Redmi Note 9 Pro

    Ringraziamenti
    401
    Ringraziato 1,445 volte in 626 Posts
    Predefinito

    Per fare quanto chiedi utilizzando una ListView devi creare un custom adapter come spiegato qui: https://www.androidiani.com/forum/tu...m-adapter.html.

    Per migliorare la qualità e la comprensibilità del tuo codice ti consiglio di fare un metodo che esegue quel for cosicchè non dovrai ripeterlo due volte.

  4. #3
    Baby Droid


    Registrato dal
    Jul 2015
    Messaggi
    49

    Ringraziamenti
    4
    Ringraziato 2 volte in 2 Posts
    Predefinito

    Ho creato gia l adapter.. Ma non so dopo aver fatto le query come collegare i risultati all adapter
    Ultima modifica di Fabriziocolazzo; 21-09-15 alle 20:20

  5. #4
    Baby Droid


    Registrato dal
    Jul 2015
    Messaggi
    49

    Ringraziamenti
    4
    Ringraziato 2 volte in 2 Posts
    Predefinito

    Crotan sapresti aiutarmi x fvr?

  6. #5
    Androidiani Power User L'avatar di Crotan


    Registrato dal
    Jul 2013
    Località
    Roma
    Messaggi
    1,265
    Smartphone
    Redmi Note 9 Pro

    Ringraziamenti
    401
    Ringraziato 1,445 volte in 626 Posts
    Predefinito

    Io ti ho detto come devi fare: devi creare un custom adapter, cosa che al momento non hai fatto. In seguito, ti basterà passare un ArrayList all'adapter ed estrapolare i risultati per poi inserirli nelle TextView.

  7. #6
    Baby Droid


    Registrato dal
    Jul 2015
    Messaggi
    49

    Ringraziamenti
    4
    Ringraziato 2 volte in 2 Posts
    Predefinito

    ho creato il mio adapter..
    39
     
    1
    public class Adapter_Ingredienti extends ArrayAdapter<Ingredienti_salsiccia> {
    2
    3
        private int resource;
    4
        private LayoutInflater inflater;
    5
    6
        public Adapter_Ingredienti(Context context, int resourceId, List<Ingredienti_salsiccia> objects) {
    7
            super(context, resourceId, objects);
    8
            resource = resourceId;
    9
            inflater = LayoutInflater.from(context);
    10
        }
    11
    12
        public View getView(int position, View v, ViewGroup parent) {
    13
    14
            // Recuperiamo l'oggetti che dobbiamo inserire a questa posizione
    15
            Ingredienti_salsiccia ingredienti_salsiccia = getItem(position);
    16
    17
            ViewHolder holder;
    18
    19
            if (v == null) {
    20
                v = inflater.inflate(resource, parent, false);
    21
                holder = new ViewHolder();
    22
                holder.ingredienteTextView = (TextView) v.findViewById(R.id.textViewList);
    23
                holder.risultatoTextView = (TextView) v.findViewById(R.id.textView2);
    24
                v.setTag(holder);
    25
            } else {
    26
                holder = (ViewHolder) v.getTag();
    27
            }
    28
    29
            holder.ingredienteTextView.setText(ingredienti_salsiccia.getNome_ingrediente());
    30
            holder.risultatoTextView.setText(ingredienti_salsiccia.getRisultato_ingrediente());
    31
    32
            return v;
    33
        }
    34
    35
        private static class ViewHolder {
    36
            TextView ingredienteTextView;
    37
            TextView risultatoTextView;
    38
        }
    39
    }


    Crotan sapresti indirizzarmi?
    Ultima modifica di Fabriziocolazzo; 27-09-15 alle 10:14

  8. #7
    Androidiani Power User L'avatar di Crotan


    Registrato dal
    Jul 2013
    Località
    Roma
    Messaggi
    1,265
    Smartphone
    Redmi Note 9 Pro

    Ringraziamenti
    401
    Ringraziato 1,445 volte in 626 Posts
    Predefinito

    Hai creato il tuo custom adapter. Se hai capito il modo in cui funziona saprai che ti basterà passargli l'ArrayList per popolarlo. Indirizzarti a cosa? Bah... :confused:

  9. #8
    Baby Droid


    Registrato dal
    Jul 2015
    Messaggi
    49

    Ringraziamenti
    4
    Ringraziato 2 volte in 2 Posts
    Predefinito

    Si..a nn sto riuscendo a capire quel meccanismo... Cioè.. Nn sto capendo come muovermi

  10. #9
    Baby Droid


    Registrato dal
    Jul 2015
    Messaggi
    49

    Ringraziamenti
    4
    Ringraziato 2 volte in 2 Posts
    Predefinito

    Come passo il l arrayList?

  11. #10
    Baby Droid


    Registrato dal
    Jul 2015
    Messaggi
    49

    Ringraziamenti
    4
    Ringraziato 2 volte in 2 Posts
    Predefinito

    non riesco a capire come caricare la mia lista.. ho due textview e i dati vengono prelevati dal db sqlite
    posto il codice:
    1)creo l'activity con la listview
    7
     
    1
     <ListView
    2
            android:layout_width="wrap_content"
    3
            android:layout_height="wrap_content"
    4
            android:id="@+id/listView"
    5
            android:layout_below="@+id/textView"
    6
            android:layout_alignParentStart="true"
    7
            android:layout_alignParentBottom="true" />


    2)Main_activity
    79
     
    1
        private DbHelper helper =new DbHelper(this);    //  private DbHelper helper = null;   //  helper= new DbHelper(this);
    2
        ListView listView;
    3
        EditText editText;
    4
        Button button;
    5
       
    6
    7
              @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    8
            protected void onCreate(Bundle savedInstanceState) {
    9
                super.onCreate(savedInstanceState);
    10
                setContentView(R.layout.salsicce);
    11
                //per settare actionBar
    12
                String C = "#ff8823";
    13
                ActionBar actionBar = getActionBar();
    14
                actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor(C))); // impostare colore desiderato actionBar
    15
    16
                listView = (ListView) findViewById(R.id.listView);
    17
                listView.setFastScrollEnabled(true);
    18
                editText = (EditText) findViewById(R.id.editText);
    19
                button = (Button) findViewById(R.id.button);
    20
                final SQLiteDatabase db = helper.getReadableDatabase();//sola lettura x fare query
    21
                Intent intent = getIntent(); // l'intent di questa activity
    22
    23
    24
                String Salsiccia = getPackageName(); //prendere stringa passata
    25
                final String id_figlio = intent.getStringExtra(Salsiccia + ".myIn");
    26
    27
    28
                //prendere valore edittext cn bottone
    29
                button.setOnClickListener(new View.OnClickListener(){
    30
                      @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    31
                    public void onClick(View arg0) {
    32
                        String Valore = editText.getText().toString();
    33
                        // verifico se è vuoto
    34
                        if ( Valore.trim().isEmpty() ) {
    35
                            // visualizzo un messaggio definito in strings.xml
    36
                            editText.setError(getText(R.string.errore));
    37
                            // attivo il controllo
    38
                            editText.requestFocus();
    39
    40
                        }
    41
                        else{
    42
                        int ValoreIntero = Integer.parseInt(Valore);
    43
                        float ValoreFloat = Float.parseFloat(Valore);
    44
                        Log.d("valore edit", (Valore+" " + ValoreIntero+" " + ValoreFloat));
    45
    46
                        //valore
    47
                        Cursor a = db.rawQuery("SELECT valore FROM unioneingredienti WHERE idfiglio=?", new String[]{id_figlio});
    48
                        a.moveToFirst();
    49
                        final ArrayList<Integer> list_valore = new ArrayList<Integer>();
    50
                        for (int z = 0; z < a.getCount(); z++) {
    51
                            Log.d("idpadre", String.valueOf((a.getInt(0)*ValoreIntero)));
    52
    53
                            list_valore.add(a.getInt(0));
    54
                            a.moveToNext();
    55
    56
    57
                        }
    58
                        }}
    59
                });
    60
    61
    62
                Cursor c = db.rawQuery("SELECT idingredienti FROM unioneingredienti WHERE idfiglio=?", new String[]{id_figlio});
    63
                c.moveToFirst();
    64
                final ArrayList<String> listp = new ArrayList<>();
    65
    66
                for (int z = 0; z < c.getCount(); z++) {
    67
                    Cursor r = db.rawQuery("SELECT nome FROM ingredienti WHERE _id=?", new String[]{c.getString(0)});
    68
                    r.moveToFirst();
    69
                    for (int i = 0; i < r.getCount(); i++) {
    70
                        Log.d("idpadre", (r.getString(0) + c.getString(0) + r.getCount()));
    71
                        listp.add(r.getString(0));
    72
                        r.moveToNext();
    73
                    }
    74
                    c.moveToNext();
    75
    76
                    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.row_salsicce, R.id.textViewList, listp);
    77
                    listView.setAdapter(adapter);
    78
                }
    79


    3)creo activity che contiene le righe(2 textview) per la listview
    27
     
    1
    <TextView
    2
            android:id="@+id/textViewList"
    3
            android:background="@drawable/color_list"
    4
            android:layout_width="wrap_content"
    5
            android:layout_height="wrap_content"
    6
            android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft"
    7
            android:textSize="18sp"
    8
            android:hint="nome_ingrediente"
    9
            android:textStyle="bold"
    10
            android:textColor="#ffffff"
    11
            android:layout_centerVertical="true"
    12
            android:layout_alignParentLeft="true"
    13
            android:layout_alignParentStart="true" />
    14
    15
        <TextView
    16
            android:id="@+id/textViewnum"
    17
            android:background="@drawable/color_list"
    18
            android:layout_width="wrap_content"
    19
            android:layout_height="wrap_content"
    20
            android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft"
    21
            android:textSize="18sp"
    22
            android:hint="numero"
    23
            android:textStyle="bold"
    24
            android:textColor="#ffffff"
    25
            android:layout_alignParentTop="true"
    26
            android:layout_toEndOf="@+id/textViewList"
    27
            android:layout_alignParentStart="false" />


    4) essendo che dovrei prendere i valori dal database sqlite non ho capito come creare l'adapter


    come modifico il main_activity per fare in modo di passare due textview nella listview?
    come creo l'adapter?

    help!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy