Ich möchte Fragment in meinem benutzerdefinierten Pager-Adapter starten. Jedoch weiß ich nicht, wie man die getSupportFragmentManager()
erhält, um die Transaktion zu beginnen.So starten Sie das Fragment von PagerAdapter
Vielen Dank für Ihre Zeit und Unterstützung in dieser Angelegenheit.
Dies ist mein Code, kundenspezifische Adapter für Pager:
public static class SlideShowAdapter extends PagerAdapter {
private ArrayList<Movie> popularMovieList;
private LayoutInflater inflater;
private Context context;
public SlideShowAdapter(Context context, ArrayList<Movie> popularMovieList) {
this.context = context;
this.popularMovieList =popularMovieList;
inflater = LayoutInflater.from(context);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public int getCount()
{
return popularMovieList.size();
}
@Override
public Object instantiateItem(ViewGroup view, final int position) {
View myImageLayout = inflater.inflate(R.layout.slide, view, false);
ImageView myImage = (ImageView) myImageLayout
.findViewById(R.id.slideShowImg);
Picasso.with(context).load(popularMovieList.get(position).getImage()).into(myImage);
view.addView(myImageLayout, 0);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MovieFragment movieFragment = MovieFragment
.newInstance(popularMovieList.get(position),popularMovieList.get(position).getGenre());
/***These code below does not work*/
getActivity().getSupportFragmentManager().beginTransaction()
.replace(R.id.fragArea,movieFragment)
.addToBackStack(null)
.commit();
}
});
return myImageLayout;
}
Ich versuchte den zweiten Ansatz, und es ist richtig. Es ist jedoch nicht zu einem Bruch gegangen, als ich auf den Gegenstand geklickt habe – DonDave