我正在尝试将我的旧应用程序转换为新的Android Material设计。但是在我的onclick
事件中,我无法使用getSupportFragmentManager()
方法。我不知道我在这方面做错了什么。
public class DrawerListAdapter extends RecyclerView.Adapter<DrawerListAdapter.DrawerViewHolder> {
private Context context;
private Activity activity;
private LayoutInflater inflater;
List<info> data = Collections.emptyList();
public DrawerListAdapter(Context context, List<info> data) {
inflater = LayoutInflater.from(context);
this.data = data;
this.context = context;
}
@Override
public DrawerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.custome_row, parent, false);
DrawerViewHolder holder = new DrawerViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(DrawerViewHolder holder, int position) {
info current = data.get(position);
holder.title.setText(current.title);
holder.icon.setImageResource(current.iconId);
holder.setClickListener(new DrawerViewHolder.ClickListener() {
@Override
public void onClick(View v, int position, boolean isLongClick) {
switch (position) {
case 1:
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, Fragment_home.newInstance(),
Fragment_home.TAG).commit();
break;
case 2:
break;
}
}
});
}
@Override
public int getItemCount() {
return data.size();
}
static class DrawerViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView title;
ImageView icon;
private ClickListener clickListener;
public DrawerViewHolder(View itemView) {
super(itemView);
title = (TextView) itemView.findViewById(R.id.text_title);
icon = (ImageView) itemView.findViewById(R.id.imageView);
itemView.setOnClickListener(this);
}
/* Interface for handling clicks - both normal and long ones. */
public interface ClickListener {
/**
* Called when the view is clicked.
*
* @param v view that is clicked
* @param position of the clicked item
* @param isLongClick true if long click, false otherwise
*/
public void onClick(View v, int position, boolean isLongClick);
}
/* Setter for listener. */
public void setClickListener(ClickListener clickListener) {
this.clickListener = clickListener;
}
@Override
public void onClick(View view) {
clickListener.onClick(view, getPosition(), false);
}
}
}
getSupportFragmentManager()
出现了错误。 - hashActivity
扩展为ActionBarActivity
。2)或者将getSupportFragmentManager()
更改为getFragmentManager()
。注意:如果使用的API低于11,则扩展ActionBarActivity
并使用getSupportFragmentManager()
。如果API高于11,则扩展Activity
并使用getFragmentManager()
。 - Anggrayudi H