CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: complicazio con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 11 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Pagina 1 di 2 12 ultimoultimo
Ultima pagina
Visualizzazione dei risultati da 1 a 10 su 12
Discussione:

ListView setOnClickListener

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
    Oct 2010
    Messaggi
    11

    Ringraziamenti
    2
    Ringraziato 0 volte in 0 Posts
    Predefinito

    ListView setOnClickListener

    Ciao Ragazzi,
    Sto impazzendo. Ammetto che sono nuovo e che sono solo alle mie prime 50h di sviluppo in java. sono un programmatore VB.net ma, allora vi spiego il mio problema.

    Sono riuscito a modificare a mio piacimento un sample che ho trovato che si chiama LAzyAdapter.Il mio scipt fa questo

    1) setti i parametri di ricerca
    2) post a un webservices che genera XML per il return
    3) leggo tutto il return e lo preparo sparando il contenuto dentro un list.

    ora fino a qui tutto ok ma non riesco ad aggiungere il click al List credo che il pezzo di codice dove dovrei lavorare è questo ma fino ad ora le sto provando tutte e non vanno....

    public View getView(int position, View convertView, ViewGroup parent) {
    View vi=convertView;

    vi.setClickable(true);
    vi.setOnClickListener(myClickListener);
    ViewHolder holder;
    if(convertView==null)
    {
    vi = inflater.inflate(R.layout.row, null);
    holder=new ViewHolder();
    holder.testo=(TextView)vi.findViewById(R.id.testo) ;
    holder.testo_2=(TextView)vi.findViewById(R.id.test o_2);
    holder.image=(ImageView)vi.findViewById(R.id.image );
    vi.setTag(holder);
    }
    else

    holder=(ViewHolder)vi.getTag();
    // holder.testo.setText((CharSequence) data_list.get(position));
    // holder.testo_2.setText((CharSequence) data_list.get(position));


    holder.testo.setText(s_in.get(position));
    holder.testo_2.setText("test");
    holder.image.setTag(s_immagini.get(position));
    imageLoader.DisplayImage(s_immagini.get(position), activity,holder.image);
    " da qui non mi schiodo "----> holder.setOnClickListener(myClickListener);
    return vi;
    }


    Aiutatemi mercoledi voglio farla vedere ad un TIZIO TROPPO MPORTANTEEE !!

    GRAZIE

  2.  
  3. #2
    Senior Droid


    Registrato dal
    Dec 2009
    Messaggi
    307

    Ringraziamenti
    15
    Ringraziato 40 volte in 39 Posts
    Predefinito

    Quote Originariamente inviato da iodroid Visualizza il messaggio
    Ciao Ragazzi,
    Sto impazzendo. Ammetto che sono nuovo e che sono solo alle mie prime 50h di sviluppo in java. sono un programmatore VB.net ma, allora vi spiego il mio problema.

    Sono riuscito a modificare a mio piacimento un sample che ho trovato che si chiama LAzyAdapter.Il mio scipt fa questo

    1) setti i parametri di ricerca
    2) post a un webservices che genera XML per il return
    3) leggo tutto il return e lo preparo sparando il contenuto dentro un list.

    ora fino a qui tutto ok ma non riesco ad aggiungere il click al List credo che il pezzo di codice dove dovrei lavorare è questo ma fino ad ora le sto provando tutte e non vanno....

    public View getView(int position, View convertView, ViewGroup parent) {
    View vi=convertView;

    vi.setClickable(true);
    vi.setOnClickListener(myClickListener);
    ViewHolder holder;
    if(convertView==null)
    {
    vi = inflater.inflate(R.layout.row, null);
    holder=new ViewHolder();
    holder.testo=(TextView)vi.findViewById(R.id.testo) ;
    holder.testo_2=(TextView)vi.findViewById(R.id.test o_2);
    holder.image=(ImageView)vi.findViewById(R.id.image );
    vi.setTag(holder);
    }
    else

    holder=(ViewHolder)vi.getTag();
    // holder.testo.setText((CharSequence) data_list.get(position));
    // holder.testo_2.setText((CharSequence) data_list.get(position));


    holder.testo.setText(s_in.get(position));
    holder.testo_2.setText("test");
    holder.image.setTag(s_immagini.get(position));
    imageLoader.DisplayImage(s_immagini.get(position), activity,holder.image);
    " da qui non mi schiodo "----> holder.setOnClickListener(myClickListener);
    return vi;
    }


    Aiutatemi mercoledi voglio farla vedere ad un TIZIO TROPPO MPORTANTEEE !!

    GRAZIE
    Quello è il codice dell'adapter, l'onClickListener dovresti settarlo sulla ListView a cui associ l'adapter! Anzi per essere precisi un OnItemClickListener!
    Qualcosa del tipo:

    Io ho usato this, facendo implementare all'activity l'interfaccia OnItemClickListener (che se non sbaglio ti richiede di implementare solo 1 metodo, qualcosa con questa firma:
    public void onItemClick(AdapterView<?> parent, View v, int position, long id)
    Altrimenti puoi dichiararlo anonimo stesso lì
    Ultima modifica di Orochi; 05-12-10 alle 18:59

  4. #3
    Baby Droid


    Registrato dal
    Oct 2010
    Messaggi
    11

    Ringraziamenti
    2
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Grazie per l'aiuto avevo già provato a fare come mi hai consigliato cioè cosi:

    lista.setOnItemClickListener((OnItemClickListener) this);

    public void onItemClick(AdapterView<?> parent, View v, int position, long id)
    {
    Toast vis4 = Toast.makeText(this, "click" , Toast.LENGTH_LONG);
    vis4.show();
    }

    ma non va..
    poi ho trovato questo post:

    [medio] Utilizzo dei Button nelle ListView con layout personalizzato - Android Developers Italia

    ma mi sto incartando
    sono piu di 10 h tirate che cerco una soluzione e devo fare ancora un sacco di cose me manca riuscia a fare questo per andare nella view di dettaglio.
    come cavolo si risolve sta cosa !!!!?

  5. #4
    Senior Droid L'avatar di Cymon


    Registrato dal
    Jul 2010
    Messaggi
    419

    Ringraziamenti
    7
    Ringraziato 43 volte in 42 Posts
    Predefinito

    Quote Originariamente inviato da iodroid Visualizza il messaggio

    ma mi sto incartando
    sono piu di 10 h tirate che cerco una soluzione e devo fare ancora un sacco di cose me manca riuscia a fare questo per andare nella view di dettaglio.
    come cavolo si risolve sta cosa !!!!?
    Uè! Sangue freddo!
    Quando dici che non va cosa intendi? Che anche se pigi non succede niente o ti scoppia tutto?
    Nel secondo caso prova a recuperare i log di errori (dalla directory tools di android "adb logcat") e spataffiala qua
    La mia katana: Slackware 13.1
    La mia wakizashi: Acer A1 Liquid con Android 2.1 Eclair
    Il mio sito: Follow the rabbit (con la sua App )

  6. #5
    Senior Droid


    Registrato dal
    Dec 2009
    Messaggi
    307

    Ringraziamenti
    15
    Ringraziato 40 volte in 39 Posts
    Predefinito

    Strano, l'onItemClickListener funziona sicuramente... forse stai facendo qualcos'altro che "scassa"...

    Magari se posti pure qualche stralcio in più del tuo codice riusciamo a capire dove sta il problema........

    Edit:
    L'ho notato solo adesso:


    Perchè hai castato this a OnItemClickListener??? se la tua classe implementa quell'interfaccia non ne hai bisogno...... la tua classe implementa OnItemClickListener, vero?
    (e per implementa, intendo ovviamente che dopo il nome ci hai messo "implements OnItemClickListener")
    Ultima modifica di Orochi; 05-12-10 alle 22:49

  7. Il seguente Utente ha ringraziato Orochi per il post:

    iodroid (06-12-10)

  8. #6
    Baby Droid


    Registrato dal
    Oct 2010
    Messaggi
    11

    Ringraziamenti
    2
    Ringraziato 0 volte in 0 Posts
    Predefinito

    intendo che nn succede nulla. dove la trovo la cartella ke dici. io eseguo il debug sul telefono. Grazie

  9. #7
    Senior Droid L'avatar di Cymon


    Registrato dal
    Jul 2010
    Messaggi
    419

    Ringraziamenti
    7
    Ringraziato 43 volte in 42 Posts
    Predefinito

    Effettivamente l'onItemClickListener mi sembra implementato correttamente e pure il toast funziona (l'ho testato).
    Il dubbio di Orochi è legittimmm, o meglio, in realtà non so se il compilatore dovrebbe accorgersi che lo stai fregando, ma se così non fosse effettivamente non inserire l'implement potrebbe portare a un funzionamento errato come quello che denunci.
    Direi che abbiamo effettivamente bisogno di un po' più codice

    Intanto... wow... vuoi dirmi che ti installi la app sul cell tutte le volte che ne hai bisogno, senza passare dall'emulatore? Ci vuole una bella pazienza...
    In ogni caso quando parlo della cartella tools intendo la cartella che hai sul PC dove sviluppi, contenuta nell'alberatura del SDK android installato.
    Anche usando il cellulare, attaccandolo via USB e abilitando il debug, dovresti riuscire a lanciare il comando adb logcat per vedere il log...
    In realtà, non avendo tu crash, non dovresti rilevare niente seguendo questa linea di indagine, riflettici nel caso tu voglia inserire qualche dato da fargli stampare come debug per approfondire l'analisi.
    La mia katana: Slackware 13.1
    La mia wakizashi: Acer A1 Liquid con Android 2.1 Eclair
    Il mio sito: Follow the rabbit (con la sua App )

  10. Il seguente Utente ha ringraziato Cymon per il post:

    iodroid (06-12-10)

  11. #8
    Baby Droid


    Registrato dal
    Oct 2010
    Messaggi
    11

    Ringraziamenti
    2
    Ringraziato 0 volte in 0 Posts
    Predefinito

    We ragazzi intanto grazie una cifra per la vostra disponibilità!
    Scusatemi sono dovto usci un attimo ma, meglio almeno ho staccato un attimo.
    allora posto un po di codice.

    Preparo una classe dove mi preparo il mio Adapter :

    public class mio_adapter extends BaseAdapter {

    private Activity activity;

    ArrayList<String> s_in ;
    ArrayList<String> s_immagini ;
    private static LayoutInflater inflater=null;
    public ImageLoader imageLoader;

    public mio_adapter(Activity a, ArrayList<String> s,ArrayList<String> immagini) {

    s_in = s;
    s_immagini = immagini;
    activity = a;


    inflater = (LayoutInflater)activity.getSystemService(Context. LAYOUT_INFLATER_SERVICE);
    imageLoader=new ImageLoader(activity.getApplicationContext());
    }


    public int getCount() {
    return s_in.size();
    }

    public Object getItem(int position) {
    return position;
    }

    public long getItemId(int position) {
    return position;
    }

    public static class ViewHolder{
    public TextView testo;
    public TextView testo_2;
    public ImageView image;

    }

    public View getView(final int position, View convertView, ViewGroup parent)
    {
    View vi=convertView;


    ViewHolder holder;
    if(convertView==null)
    {
    vi = inflater.inflate(R.layout.row, null);
    holder=new ViewHolder();
    holder.testo=(TextView)vi.findViewById(R.id.testo) ;
    holder.testo_2=(TextView)vi.findViewById(R.id.test o_2);
    holder.image=(ImageView)vi.findViewById(R.id.image );
    vi.setTag(holder);
    }
    else

    holder=(ViewHolder)vi.getTag();
    // holder.testo.setText((CharSequence) data_list.get(position));
    // holder.testo_2.setText((CharSequence) data_list.get(position));


    holder.testo.setText(s_in.get(position));
    holder.testo_2.setText("test");
    holder.image.setTag(s_immagini.get(position));
    imageLoader.DisplayImage(s_immagini.get(position), activity, holder.image);



    return vi;
    }

    poi nella Activity

    public class rmtb extends Activity
    {
    ListView lista;
    LazyAdapter adapter;

    private List<Message> messages;


    int nbook=0;
    String result=null;
    HttpClient client=null;

    private TextView cercato;
    private TextView txtDebug;
    String valori_xml ;
    public ImageLoader imageLoader;



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


    Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
    public void run() {
    setContentView(R.layout.main);
    }
    }, 5000);



    }




    private void loadFeed(){

    try{

    FeedParser parser = FeedParserFactory.getParser(ParserType.XML_PULL);
    messages = parser.parse();

    Toast vis = Toast.makeText(this, "prima del for" , Toast.LENGTH_LONG);
    vis.show();

    ArrayList<String> Ragione_sociale = new ArrayList<String>(messages.size());

    ArrayList<String> test_array_imm = new ArrayList<String>(messages.size());

    test_array_imm.add("http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg");
    test_array_imm.add("http://a1.twimg.com/profile_images/957149154/twitterhalf_normal.jpg");
    test_array_imm.add("http://a1.twimg.com/profile_images/97470808/icon_normal.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg");
    test_array_imm.add("http://a3.twimg.com/profile_images/670625317/aam-logo-v3-twitter.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg");
    test_array_imm.add("http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg");
    test_array_imm.add("http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg");
    test_array_imm.add("http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg");
    test_array_imm.add("http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg");
    test_array_imm.add("http://a1.twimg.com/profile_images/957149154/twitterhalf_normal.jpg");
    test_array_imm.add("http://a1.twimg.com/profile_images/97470808/icon_normal.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg");
    test_array_imm.add("http://a3.twimg.com/profile_images/670625317/aam-logo-v3-twitter.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg");
    test_array_imm.add("http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg");
    test_array_imm.add("http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg");
    test_array_imm.add("http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg");
    test_array_imm.add("http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");
    test_array_imm.add("http://a3.twimg.com/profile_images/511790713/AG.png");

    for (Message msg : messages)
    {
    Ragione_sociale.add(msg.get_Ragione_sociale().toSt ring());

    // test_array_imm.add(mStrings[msg.]);

    //qui devo aggiungere l'array con le URL delle immagini


    //poi nella pagina dettagli rileggo il contenuto di message solo alla variabile passata

    // PERFETTO
    }


    Toast vis3 = Toast.makeText(this, "dopo il for" , Toast.LENGTH_LONG);
    vis3.show();


    //nuovo

    lista = (ListView)findViewById(R.id.list);
    adapter = new LazyAdapter(this, Ragione_sociale,test_array_imm);
    lista.setAdapter(adapter);
    lista.setOnItemClickListener((OnItemClickListener) this);

    //Nuovo

    Toast vis4 = Toast.makeText(this, "FATTO" , Toast.LENGTH_LONG);
    vis4.show();
    //pd.dismiss();
    }
    catch (Throwable t)
    {
    Log.e("AndroidNews",t.getMessage(),t);
    }



    }
    public void OnItemClickListener(LazyAdapter parent, View v, int position, long id)
    {
    Toast vis4 = Toast.makeText(this, "click" , Toast.LENGTH_LONG);
    vis4.show();
    }







    public void onDestroy()
    {
    // adapter.imageLoader.stopThread();
    // lista.setAdapter(null);
    super.onDestroy();
    }

    public void myOnclickHandle(View target) throws Exception
    {
    switch(target.getId())
    {

    case R.id.find_button:


    txtDebug = (TextView)findViewById(R.id.txtDebug);
    txtDebug.setText("Inizio la ricerca");
    loadFeed();
    break;
    }
    }

    }

    Credo di avervi postato tutto il necessario.....
    ripeto sono nuovo non SEGATEMI LE GAMBE ..... con la storia ti mancano le basi, devi studiare, sto studiando una cifra e passare dal VB.net a java non è facile

    GRAZIE io continuo a capire KE HO FATTOOOOO !!!

  12. #9
    Baby Droid


    Registrato dal
    Oct 2010
    Messaggi
    11

    Ringraziamenti
    2
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ragazzi ho risolto l'errore era qui

    lista.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1,
    int arg2, long arg3) {
    setContentView(R.layout.dettaglio);

    TextView indirizzo;
    indirizzo = (TextView)findViewById(R.id.indirizzo);
    indirizzo.setTag(arg1.getContext());

    // Toast vis4 = Toast.makeText(this, "click" , Toast.LENGTH_LONG);
    //vis4.show();

    }


    });



    ora riesco ad andare alla pagina di dettaglio dove ho 3 text e nuovamente l'immagine che già sparo nella list.
    Avete qualche dritta su come fare in 2 passi questa cosa, cioè, recuperare i dati in base all'indice seleionato nel list, posizionarmi nel mio adapter e poi castare e riempire le mie text ?
    Grazie

  13. #10
    Senior Droid


    Registrato dal
    Dec 2009
    Messaggi
    307

    Ringraziamenti
    15
    Ringraziato 40 volte in 39 Posts
    Predefinito

    Quote Originariamente inviato da Cymon Visualizza il messaggio
    Il dubbio di Orochi è legittimmm, o meglio, in realtà non so se il compilatore dovrebbe accorgersi che lo stai fregando, ma se così non fosse effettivamente non inserire l'implement potrebbe portare a un funzionamento errato come quello che denunci.
    Direi che abbiamo effettivamente bisogno di un po' più codice
    Sì, se fai il cast esplicito
    (OnItemClickListener)this
    il compilatore te lo fa passare ma poi a runtime dovrebbe andare in errore.

    @iodroid
    Rispetto a prima che hai cambiato?
    Hai aggiunto solo @Override?

    Ah, ecco, prima avevi scritto così:

    Quote Originariamente inviato da iodroid Visualizza il messaggio
    Grazie per l'aiuto avevo già provato a fare come mi hai consigliato cioè cosi:

    lista.setOnItemClickListener((OnItemClickListener) this);

    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
    Toast vis4 = Toast.makeText(this, "click" , Toast.LENGTH_LONG);
    vis4.show();
    }

    ma non va..
    poi ho trovato questo post:

    [medio] Utilizzo dei Button nelle ListView con layout personalizzato - Android Developers Italia

    ma mi sto incartando
    sono piu di 10 h tirate che cerco una soluzione e devo fare ancora un sacco di cose me manca riuscia a fare questo per andare nella view di dettaglio.
    come cavolo si risolve sta cosa !!!!?
    E già avevi messo AdapterView<?> , perchè nel codice che hai postato dopo invece l'hai cambiato con LazyAdapter?
    Ultima modifica di Orochi; 06-12-10 alle 09:36

Pagina 1 di 2 12 ultimoultimo
Ultima pagina

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