Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Android] Come aprire un' activity per ogni riga cliccata in una listView?

    Salve, ho una ListView che viene popolata dopo una ricerca. I dati vengono prelevati da un DB Mysql.
    Vorrei che cliccando su ogni Item si aprisse l'activity inerente all'item cliccato con tutti i dati.

    Questo è il codice AdapterFish.java
    codice:
    public class AdapterFish extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
        private Context context;
        private LayoutInflater inflater;
        List<DataFish> data= Collections.emptyList();
        DataFish current;
    
        // create constructor to initialize context and data sent from MainActivity
    public AdapterFish(Context context, List<DataFish> data){
            this.context=context;
            inflater= LayoutInflater.from(context);
            this.data=data;
        }
    
        // Inflate the layout when ViewHolder created
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View view=inflater.inflate(R.layout.container_fish, parent,false);
            MyHolder holder=new MyHolder(view);
            return holder;
        }
    
    
    
        // Bind data
    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    
            // Get current position of item in RecyclerView to bind data and assign values from list
    MyHolder myHolder= (MyHolder) holder;
            DataFish current=data.get(position);
            myHolder.textId.setText(current.id);
            myHolder.textCognome.setText(current.Cognome);
            myHolder.textNome.setText(current.Nome);
            myHolder.textPaese.setText(current.paese);
            myHolder.textPaese.setTextColor(ContextCompat.getColor(context, R.color.colorAccent));
            myHolder.textSesso.setText(current.sesso);
            myHolder.textProfessione.setText(current.professione);
            myHolder.textZodiacale.setText(current.zodiacale);
        }
    
        // return total item from List
    @Override
    public int getItemCount() {
            return data.size();
        }
    
    
        class MyHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
            TextView textId;
            ImageView ivImg;
            TextView textCognome;
            TextView textNome;
            TextView textPaese;
            TextView textSesso;
            TextView textProfessione;
            TextView textZodiacale;
            
             // create constructor to get widget reference
    public MyHolder(View itemView) {
                super(itemView);
                itemView.setOnClickListener(this);
                textId= (TextView) itemView.findViewById(R.id.textId);
                ivImg= (ImageView) itemView.findViewById(R.id.ivImg);
                textCognome= (TextView) itemView.findViewById(R.id.textCognome);
                textNome = (TextView) itemView.findViewById(R.id.textNome);
                textPaese = (TextView) itemView.findViewById(R.id.textPaese);
                textSesso = (TextView) itemView.findViewById(R.id.textSesso);
                textProfessione = (TextView) itemView.findViewById(R.id.textProfessione);
                textZodiacale = (TextView) itemView.findViewById(R.id.textZodiacale);
            }
    
            // Click event for all items
    @Override
    public void onClick(View v) {
    
                Toast.makeText(context, "You clicked an item", Toast.LENGTH_SHORT).show();
    
            }
    
        }
    }


    adesso se clicco su un item mi visualizza un Toas "
    You clicked an item".
    Mi deve reindirizzare ad una nuova activity inviando come parametro l'id dell'item cliccato.

    Come posso fare?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,702
    Premesso che non hai una ListView ma una (preferibile) RecyclerView, utilizza un normalissimo intent e passi il parametro "id", una cosa come:
    Intent apripagina = new Intent (context, TuaActivity.class);
    apripagina.putExtra ("id", textId);
    context.startActivity(apripagina);
    poi nella TuaActivity recuperi il parametro:
    String textId = extras.getString("id", null);
    Io ne ho viste cose che voi umani non potreste immaginare. Navi da combattimento in fiamme al largo dei bastioni di Orione e ho visto i raggi B, balenare nel buio vicino le porte di Tannhäuser. E tutti quei momenti ... andranno ... perduti nel tempo, come lacrime nella pioggia. È tempo di morire. (Roy Batty).

  3. #3
    Grazie Misterxxx

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.