Appeler un Fragment de méthode à partir d'un Adaptateur
J'ai une méthode sendData()
dans mon fragment. Cette méthode démarre une nouvelle Activité. Je tiens à appeler cette méthode à partir de mon ArrayAdapter
.
Voici mon code:-
HomeFragment.java
stagAdaper = new StaggeredAdapter(myContext, android.R.layout.simple_list_item_1, getList);
mGridView.setAdapter(stagAdaper);
private void sendData(int position)
{
myDialog = new ProgressDialog(myContext).show(getActivity(), "Fetching news..", "Just a moment");
myDialog.getWindow().setContentView(R.layout.openarticlewaitprogress);
myDialog.getWindow().setTitle("Loading..");
myDialog.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
new NewsDetails(myDialog);
Intent nIntent = new Intent(getActivity(),Details.class);
String Body=getList.get(position).getBody();
newsIntent.putExtra("Body", Body);
startActivity(nIntent);
}
StaggeredAdapter.java
viewHolder.layGridLayout.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
//TODO Auto-generated method stub
//viewHolder.layGridLayout.setForeground(R.drawable.foreground_selector);
}
});
return convertView;
}
Comment puis-je le faire?
- regardez cette et de vous apprendre à communiquer de Fragments : stackoverflow.com/questions/24081101/...
Vous devez vous connecter pour publier un commentaire.
Edit :
Voici ce que je voudrais l'utiliser maintenant. Âgées, "plus facile" les solutions sont disponibles ci-dessous.
Maintenant à partir de n'importe quel endroit dans la carte, nous pouvons l'appeler
listener.onEvent(data);
pour déclencher la méthode dans le fragment.En outre, au lieu de fournir un auditeur par le constructeur, nous pouvons ajouter une autre méthode dans la carte comme
registerListener(EventListener eventListener)
et maintenir à jour une liste d'auditeurs en cas de besoin.Vieille Réponse:
Solution 1 :
Faire de l'adaptateur à l'intérieur de la classe de votre fragment, de sorte que vous pouvez appeler la méthode directement.
Solution 2 :
Mise à jour de votre constructeur d'adaptateur pour accepter le Fragment en tant que paramètre.
Quelque chose comme :
et mise à jour le constructeur de la Carte :
puis vous appelez les méthodes utilisant le fragment variable.
Je sais que c'est tard pour répondre, mais Il y a 2 façons plus à faire:
Vous pouvez également envoyer
broadcast
deadapter
et de l'inscrire dansfragment
.Utilisation de l'interface. Reportez-vous cette DONC, la question pour plus de détails.
Vous pouvez faire sendData méthode statique
n appelez ça comme