Autore Topic: Problemi con metodo getview  (Letto 720 volte)

Offline andgio76

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
Problemi con metodo getview
« il: 24 Settembre 2012, 19:56:46 CEST »
0
Ciao ragazzi sono nuovo in questo forum e volevo chiedervi un piacere grande!!!

Ho un problema con questo metodo Getview, in poche parole lo uso per creare una listview personalizzata, il problema è il seguente questo metodo non viene mai richiamato, perchè? quando viene richiamato questo metodo?

Vi allego il mio codice:

Codice (Java): [Seleziona]
public class listviewpersonalizzata extends ListActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                //setContentView(R.layout.listapersonalizz);
                ListView listaper=(ListView) findViewById(R.id.listpersonalizzataxml);
                RowAdapter mioadapter= new RowAdapter(listviewpersonalizzata.this);
                mioadapter.addItem("Paolo");
                listaper.setAdapter(mioadapter);
               

Codice (Java): [Seleziona]
public class RowAdapter extends BaseAdapter{
        private ArrayList<String> mData = new ArrayList<String>();
        private Context mContext;
       
        public RowAdapter(Context mContext) {
                // TODO Auto-generated method stub
                this.mContext = mContext;
        }
        public void addItem(final String item) {
        mData.add(item);
        notifyDataSetChanged();
       
        }      
        @Override
        public int getCount() {
                // TODO Auto-generated method stub
                return 0;
        }

        @Override
        public Object getItem(int arg0) {
                // TODO Auto-generated method stub
                return null;
        }

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

        @Override
        public View getView(int arg0, View arg1, ViewGroup arg2) {

        // aqui  uso el xml row
        View v = View.inflate(mContext, R.layout.contlistpersonaliz, null);
   
        // obtener el texto y modificar
        TextView text= (TextView)v.findViewById(R.id.andrea);      
        text.setText((CharSequence) mData.get(0));
        text.setBackgroundResource(android.R.color.darker_gray);
           
        // obtener la imagen y modificar
        Button img = (Button)v.findViewById(R.id.rocio);
        // antes de colocar la imagen puede poner las condiciones para  
        // colocar una u otra imagen
           img.setText("ciaoooooooo");
        return v;
        }

Vi chiedo gentilmente di aiutarmi perchè sto impazzendo !!!

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:Problemi con metodo getview
« Risposta #1 il: 24 Settembre 2012, 21:11:16 CEST »
0
secondo me sbagli alla riga
Codice (Java): [Seleziona]
View v = View.inflate(mContext, R.layout.contlistpersonaliz, null);
prova a vedere qui.. è con un arrayadapter, ma dovrebbe funzionare anche con un baseadapter :)

http://www.anddev.it/index.php/topic,432.0.html
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline andgio76

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
Re:Problemi con metodo getview
« Risposta #2 il: 25 Settembre 2012, 10:24:23 CEST »
0
Perchè sbaglio
View v = View.inflate(mContext, R.layout.contlistpersonaliz, null);

Recupero le view contenute nel mio layout!

Il problema è un altro, non mi dà un errore, non mi esegue proprio il metodog getview!!

Ciao e grazie mille

Offline andgio76

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
Re:Problemi con metodo getview
« Risposta #3 il: 25 Settembre 2012, 13:48:02 CEST »
0
CIao ragazzi ho provato a cambiare quello che mi avete detto pero nulla di nulla

Codice (Java): [Seleziona]
public class RowAdapter extends BaseAdapter{
        private ArrayList<String> mData;
        private Context mContext;
       
        public RowAdapter(Context mContext) {
                // TODO Auto-generated method stub
                mData = new ArrayList<String>();
                this.mContext = mContext;
        }
        public void addItem(final String item) {
        mData.add(item);
        notifyDataSetChanged();
       
        }      
        @Override
        public int getCount() {
                // TODO Auto-generated method stub
                return 0;
        }

        @Override
        public Object getItem(int arg0) {
                // TODO Auto-generated method stub
                return null;
        }

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

        @Override
        public View getView(int arg0, View arg1, ViewGroup arg2) {
                LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        // aqui  uso el xml row
                View v = inflater.inflate(R.layout.contlistpersonaliz,null);
        // obtener el texto y modificar
        TextView text= (TextView)v.findViewById(R.id.andrea);      
        text.setText("buona sera");
        text.setBackgroundResource(android.R.color.darker_gray);
           
        // obtener la imagen y modificar
        TextView img = (TextView)v.findViewById(R.id.rocio);
        // antes de colocar la imagen puede poner las condiciones para  
        // colocar una u otra imagen
           img.setText("ciaoooooooo");
        return v;
        }

Codice (Java): [Seleziona]
public class listviewpersonalizzata extends Activity {
public RowAdapter mioadapter;
public ListView listaper;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                setContentView(R.layout.listapersonalizz);
                listaper=(ListView) findViewById(R.id.listpersonalizzataxml);
                mioadapter= new RowAdapter(listviewpersonalizzata.this);
                mioadapter.addItem("Paolo");
                listaper.setAdapter(mioadapter);


Se qualcuno mi puo aiutare grazie mille

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:Problemi con metodo getview
« Risposta #4 il: 25 Settembre 2012, 13:53:27 CEST »
0
Altra possibilità... nel costruttore non chiami

super(parametri);

prova ad aggiungerlo :)
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline andgio76

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
Re:Problemi con metodo getview
« Risposta #5 il: 25 Settembre 2012, 14:13:37 CEST »
0
Ho provato un tutorial ma nulla di che

Codice (Java): [Seleziona]
package com.Android;

import java.util.ArrayList;

import android.content.Context;
import android.sax.Element;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;

public class RowAdapter extends ArrayAdapter<String>{
          private final Context context;
          private final String[] values;

          public RowAdapter(Context context, String[] values) {
            super(context, R.layout.contlistpersonaliz, values);
            this.context = context;
            this.values = values;
          }



        @Override
        public int getCount() {
                // TODO Auto-generated method stub
                return 0;
        }



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

        @Override
        public View getView(int arg0, View arg1, ViewGroup arg2) {
                LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        // aqui  uso el xml row
                View v = inflater.inflate(R.layout.contlistpersonaliz,null);
        // obtener el texto y modificar
        TextView text= (TextView)v.findViewById(R.id.andrea);      
        text.setText("buona sera");
        text.setBackgroundResource(android.R.color.darker_gray);
           
        // obtener la imagen y modificar
        TextView img = (TextView)v.findViewById(R.id.rocio);
        // antes de colocar la imagen puede poner las condiciones para  
        // colocar una u otra imagen
           img.setText(values[arg0]);
        return v;
        }

Codice (Java): [Seleziona]
public class listviewpersonalizzata extends ListActivity {
public RowAdapter mioadapter;
public ListView listaper;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
            String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
                    "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
                    "Linux", "OS/2" };
                RowAdapter adapter = new RowAdapter(listviewpersonalizzata.this, values);
                setListAdapter(adapter);


               
        }

Ho creato un layout xml di nome contlistpersonaliz.xml

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="fill_parent" >

    <TextView
       android:id="@+id/rocio"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="TextView" />

    <TextView
       android:id="@+id/andrea"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="TextView" />

</LinearLayout>

Offline andgio76

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
Re:Problemi con metodo getview
« Risposta #6 il: 25 Settembre 2012, 14:20:15 CEST »
0
Non riesco a capire quando viene mandato in esecuzione il metodo getview, ho provato di tutto ma nulla !!!

L'ultimo codice che ho provato è quello indicato qui sopra!

Se qualcuno ha provato a personalizzare una listview potrebbe aiutarmi

Grazie

Offline andgio76

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
Re:Problemi con metodo getview
« Risposta #7 il: 25 Settembre 2012, 15:37:39 CEST »
0
Una domanda nel file manifest devo inserire solo active quello che istanzia adapter vero?

non devo inserire anche il file xml quello che serve per riscrivere la row vero? (public class RowAdapter extends ArrayAdapter<String>)

Offline andgio76

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
Re:Problemi con metodo getview
« Risposta #8 il: 25 Settembre 2012, 15:45:18 CEST »
0
Altra cosa io sto usando android 2.1 centra qualcosa???

Il mio problema che non mi mostra un errore, non mi mostra assolutamente nulla, una active vuota!!!

Ciao  egrazie