2017-05-16 4 views
0

J'essaie de transmettre des informations à l'activité suivante de mon application en fonction de l'élément de vue de liste sélectionné. Cependant, startActivity est appelé lorsqu'un bouton personnalisé (id: button_go) est cliqué.Comment passer des informations à l'activité suivante en fonction de l'élément sélectionné dans la vue de liste personnalisée

je crois que la façon commune de transmettre des informations sur la base desquelles vue liste élément est sélectionné est par le code suivant:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapter, View view, int position, long id){ 
      Intent intent = new Intent(getActivity(), Detail_Activity.class); 

     } 
    }); 

Mais cela ne fonctionne pas dans ma classe car il est relié à un bouton. Mon code dans ma liste Voir le fragment suit.

class CustomAdapter extends BaseAdapter { 

    @Override 
    public int getCount() { 
     return testArray.length; 
    } 

    @Override 
    public Object getItem(int i) { 
     return null; 
    } 

    @Override 
    public long getItemId(int i) { 
     return 0; 
    } 

    @Override 
    public View getView(int i, View view, ViewGroup viewGroup) { 
     view = getActivity().getLayoutInflater().inflate(R.layout.customlayout,null); 


     Button button_go = (Button)view.findViewById(R.id.button_go); 


     button_go.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
      } 
       // Perform action on click 
       //startActivity(new Intent(getActivity(), Detail_Activity.class)); 
      } 
     }); 


     return view; 
    } 
} 

}

+0

Alors, quelle est l'erreur? –

+1

Copie possible de [http://stackoverflow.com/questions/18199674/passing-data-between-activities-from-listview-to-another-activity] –

Répondre

1

Créez votre Intent dans votre bouton de onClickListener et mettre la position (ou tout autre élément de la liste des informations spécifiques) du bouton cliqué dans le Intent comme un supplément.

button_go.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      Intent intent = new Intent(getActivity(), Detail_Activity.class)); 
      intent.putExtra("position", i); 
      startActivity(intent); 
     } 
    }); 

ensuite obtenir la position du bouton cliqué dans la nouvelle activité de onCreate() avec:

Integer buttonPos = getIntent().getIntExtra("position"); 
0

Je ne suis pas sûr de ce qui est votre question. Pourriez-vous s'il vous plaît me dire ce qui se passe lorsque vous cliquez sur le bouton? Essayez d'ajouter un journal pour vous assurer que le onClick est appelé.

Votre problème est que vous ne savez pas comment transmettre des informations dans la nouvelle activité ou que votre activité ne démarre pas? Pour info, vous pouvez récupérer l'article à cette position en appelant getItem (position).