Ich möchte Fragment von Adapter-Klasse aufrufen, aber nicht in der Lage dazu .. Also bitte eine Methode, um das Fragment aufzurufen. Ich habe eine Methode der ersten Berufung Aktivität bekam und dann das Fragment Schalt ist es eine andere MethodeWie öffnet man ein Fragment aus der Adapterklasse ohne Absicht?
Hier ist der Code:
public class FanAdapter extends RecyclerView.Adapter<FanAdapter.MyViewHolder>
{
private Context mContext;
private List<Fan> FanList;
public class MyViewHolder extends RecyclerView.ViewHolder
{
public TextView testTitle;
public CardView mCardView;
public MyViewHolder(View view)
{
super(view);
mCardView = (CardView) view.findViewById(R.id.card_view);
testTitle = (TextView) view.findViewById(R.id.fan_name);
}
}
public FanAdapter(Context mContext, List<Fan> FanList)
{
this.mContext = mContext;
this.FanList = FanList;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.fanslist, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
final Fan album = FanList.get(position);
holder.testTitle.setText(album.getName());
holder.mCardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String Slecteditem= String.valueOf(position);
Bitmap bmp = BitmapFactory.decodeResource(Resources.getSystem(), position);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
Fragment fragment = new ProfileDisplay();
FragmentManager fm = getActivity().getFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
Bundle args = new Bundle();
args.putString("itemname", Slecteditem);
args.putByteArray("picture", byteArray);
fragment.setArguments(args);
fragmentTransaction.replace(R.id.fl_toplayout, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
Toast.makeText(mContext,"Profile"+album.getName(),Toast.LENGTH_LONG).show();
}
});
// loading album cover using Glide library
}
@Override
public int getItemCount()
{
return FanList.size();
}
}
Der Editor nicht in der Lage ist getActivity zu lösen() Verfahren in
FragmentManager fm = getActivity().getFragmentManager();
'FragmentManager fm = mContext.getFragmentManager();' –