Je veux appeler une fonction dans le ActivityClass.java
, à partir de la classe RecyclerView.Adapter.android - Comment accéder/appeler une méthode dans ActivityClass.java à partir de RecyclerView.Adapter
ci-dessous est ma fonction ActivityClass.java:
public void payslipActivityNav() {
Bundle b = new Bundle();
if (b != null) {
Intent intent = new Intent(HomePage.this, PayslipActivity.class);
b.putString("UserName", lblUserName.getText().toString());
b.putString("UserDesignation", lblDesignation.getText().toString());
intent.putExtras(b);
startActivity(intent);
}
}
Et ceci est la classe dans ma classe RecyclerView.Adapter:
public class SingleItemRowHolder extends RecyclerView.ViewHolder {
protected TextView tvTitle;
protected ImageView itemImage;
protected TextView lblDescription;
public SingleItemRowHolder(final View view) {
super(view);
this.tvTitle = (TextView) view.findViewById(R.id.tvTitle);
this.itemImage = (ImageView) view.findViewById(R.id.itemImage);
this.lblDescription = (TextView) view.findViewById(R.id.lblDescription);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
strSelectedText = tvTitle.getText().toString();
Toast.makeText(v.getContext(), strSelectedText, Toast.LENGTH_SHORT).show();
switch (strSelectedText){
case "Pay":
((ActivityClass)mContext).payslipActivityNav();
break;
}
}
});
}
}
C'est l'erreur que je reçois java.lang.ClassCastException: android.app.Application cannot be cast to packageName.ActivityClass
Y at-il un problème avec lequel j'accède à la méthode ActivityClass? Ou la méthode d'appel doit-elle être exécutée dans cette classe interne ou ailleurs dans la classe RecyclerView.Adapter.
L'aide serait appréciée.
Merci d'avance!
MISE À JOUR:
Je l'ai résolu en utilisant cela. Quelque chose a traversé mon esprit et j'ai essayé ceci et cela a fonctionné:
switch (strSelectedText){
case "Pay":
Intent intent = new Intent(mContext.getApplicationContext(), ActivityClass.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
break;
}
Merci à vous tous.
vous pouvez utiliser l'interface à cette fin –
je ne ai besoin d'appeler un à chaque méthode d'activité. Mais si vous avez un petit exemple pour cela, ce serait utile. –
@RickyPatel Cela signifie que je devrais utiliser "public static void payslipActivityNav()", au lieu de "public void payslipActivityNav()"? –