Android 在片段(回收器视图)上调用setAdapter无效

Android 在片段(回收器视图)上调用setAdapter无效,android,android-studio,android-fragments,android-recyclerview,android-adapter,Android,Android Studio,Android Fragments,Android Recyclerview,Android Adapter,我试图在片段上设置适配器,但什么也没有显示 该对象从API检索数据,但不显示在屏幕上 我已经在rvItem.setAdapter(maintapter)上设置了断点但是什么都没有发生,调试直接通过 公共类ItemFragment扩展了片段{ 专用主适配器; 私人物品展示者物品展示者; 私人GridLayoutManager mLayoutManager; 私有列表=新的ArrayList(); 私有字符串区域=“br”; @绑定(R.id.rvItem) 回收项目; 公共项目片段(){ //必

我试图在片段上设置适配器,但什么也没有显示

该对象从API检索数据,但不显示在屏幕上

我已经在
rvItem.setAdapter(maintapter)上设置了断点但是什么都没有发生,调试直接通过


公共类ItemFragment扩展了片段{
专用主适配器;
私人物品展示者物品展示者;
私人GridLayoutManager mLayoutManager;
私有列表=新的ArrayList();
私有字符串区域=“br”;
@绑定(R.id.rvItem)
回收项目;
公共项目片段(){
//必需的空公共构造函数
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图=充气机。充气(R.layout.fragment_项目,容器,错误);
ButterKnife.bind(这个,视图);
itemPresenter=新的itemPresenter();
mLayoutManager=新的GridLayoutManager(getActivity(),4);
rvItem.setLayoutManager(mLayoutManager);
getList();
返回视图;
}
私有void getList(){
loadItemList(区域,“全部”,AppConfigs.api_键,新ItemListListener(){
@凌驾
public void onRequestStarted(){
}
@凌驾
公共void onRequestFinished(){
}
@凌驾
公共无效onError(可丢弃错误){
}
@凌驾
公共项目加载(列表项列表){
displayItemList(ObjectAdapter.ConvertItemToObject(itemList));
}
});
}
公共无效显示项列表(列表项列表){
列表=项目列表;
mainAdapter=new mainAdapter(getActivity(),list,new mainAdapter.onObject ClickListener()){
@凌驾
对象ClickListener(ObjectAdapter ObjectAdapter)上的公共无效{
Toast.makeText(getActivity(),“Object Adapter”+objectAdapter.Id,Toast.LENGTH_SHORT).show();
}
});
rvItem.setAdapter(主适配器);
mainAdapter.notifyDataSetChanged();
}
}
适配器:

public class MainAdapter extends                    
RecyclerView.Adapter<MainAdapter.MainAdapterViewHolder>  {

public List<ObjectAdapter> mObjecterList;
private final OnObjectClickListener listener;
private Context mContext;


public interface OnObjectClickListener {
    void OnObjectClickListener(ObjectAdapter objectAdapter);
}


public MainAdapter(Context context, List<ObjectAdapter> objectAdapterList, OnObjectClickListener listener) {
    this.mObjecterList = objectAdapterList;
    this.listener = listener;
    this.mContext = context;
}

@Override
public MainAdapter.MainAdapterViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_main_adapter, parent, false);

    return new MainAdapterViewHolder(view);
}

@Override
public void onBindViewHolder(MainAdapter.MainAdapterViewHolder holder, int position) {
    ObjectAdapter ob = mObjecterList.get(position);

    holder.tvNameText.setText(ob.Name);
    holder.bind(mObjecterList.get(position), listener);

    String url = "";
    switch (ob.Type){

        case CHAMPION: url = String.format(AppConfigs.portraitChampion, ob.Portrait);
            break;
        case SPELL: url = String.format(AppConfigs.portraitSpell, ob.Portrait);
            break;
        case ITEM: url = String.format(AppConfigs.portraitItem, ob.Portrait);
            break;
    }

    Picasso.with(mContext).load(url).into(holder.ivRetrato);

}

@Override
public int getItemCount() {
    return this.mObjecterList.size();
}

public static class MainAdapterViewHolder extends RecyclerView.ViewHolder {

    public TextView tvNameText;
    public ImageView ivRetrato;

    public MainAdapterViewHolder(View itemView) {
        super(itemView);

        this.tvNameText = (TextView) itemView.findViewById(R.id.tvNameText);
        this.ivRetrato = (ImageView) itemView.findViewById(R.id.ivImagePortrait);
    }

    public void bind(final ObjectAdapter  objectAdapterListItem, final OnObjectClickListener listener) {
        itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                listener.OnObjectClickListener(objectAdapterListItem);
            }
        });
    }
}
}
public类MainAdapter扩展
RecyclerView.适配器{
公共列表移动对象列表;
私有最终OnObject ClickListener侦听器;
私有上下文;
对象ClickListener的公共接口{
void OnObjectClickListener(ObjectAdapter ObjectAdapter);
}
公共主适配器(上下文上下文、列表objectAdapterList、OnObject ClickListener侦听器){
this.mObjecterList=对象适配器列表;
this.listener=listener;
this.mContext=上下文;
}
@凌驾
public MainAdapter.MainAdapterViewHolder onCreateViewHolder(视图组父级,int-viewType){
View-View=LayoutInflater.from(parent.getContext()).flate(R.layout.activity\u main\u适配器,parent,false);
返回新的MainAdapterWilder(视图);
}
@凌驾
BindViewHolder上的公共无效(MainAdapter.MainAdapterViewHolder,内部位置){
ObjectAdapter ob=mObjecterList.get(位置);
holder.tvNameText.setText(ob.Name);
holder.bind(mObjecterList.get(position),listener);
字符串url=“”;
开关(ob.型){
case CHAMPION:url=String.format(AppConfigs.crativechampion,ob.crative);
打破
大小写拼写:url=String.format(AppConfigs.crativespell,ob.crative);
打破
案例项:url=String.format(AppConfigs.crativeItem,ob.crative);
打破
}
毕加索.with(mContext).load(url).into(holder.ivretato);
}
@凌驾
public int getItemCount(){
返回此.mObjecterList.size();
}
公共静态类MainAdapterViewHolder扩展了RecyclerView.ViewHolder{
公共文本查看tvNameText;
公众形象;
公共MainAdapterWilder(视图项视图){
超级(项目视图);
this.tvNameText=(TextView)itemView.findViewById(R.id.tvNameText);
this.ivretato=(ImageView)itemView.findViewById(R.id.ivImageGrative);
}
公共无效绑定(最终ObjectAdapter objectAdapterListItem,最终OnObject ClickListener listener){
itemView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
OnObjectClickListener(ObjectAdapterListener项);
}
});
}
}
}

您需要直接在
onCreateView
方法中设置适配器,并在加载数据时调用适配器的
notifyDataSetChanged()

只需检查您的
onItemListLoad()
是否实际获取列表,并检查是否从
ObjectAdapter.ConvertItemToObjectCT(itemList)获取列表
请检查您的适配器是否为空。
onitmlistload()
正在获取列表,但我认为问题出在适配器上。调试代码时,应用程序不会在
displayItemList
上输入,而是显示
itemList
的大小。我刚刚尝试了此操作,但
notifyDataSetChanged()
为空,就像适配器一样。
public class MainAdapter extends                    
RecyclerView.Adapter<MainAdapter.MainAdapterViewHolder>  {

public List<ObjectAdapter> mObjecterList;
private final OnObjectClickListener listener;
private Context mContext;


public interface OnObjectClickListener {
    void OnObjectClickListener(ObjectAdapter objectAdapter);
}


public MainAdapter(Context context, List<ObjectAdapter> objectAdapterList, OnObjectClickListener listener) {
    this.mObjecterList = objectAdapterList;
    this.listener = listener;
    this.mContext = context;
}

@Override
public MainAdapter.MainAdapterViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_main_adapter, parent, false);

    return new MainAdapterViewHolder(view);
}

@Override
public void onBindViewHolder(MainAdapter.MainAdapterViewHolder holder, int position) {
    ObjectAdapter ob = mObjecterList.get(position);

    holder.tvNameText.setText(ob.Name);
    holder.bind(mObjecterList.get(position), listener);

    String url = "";
    switch (ob.Type){

        case CHAMPION: url = String.format(AppConfigs.portraitChampion, ob.Portrait);
            break;
        case SPELL: url = String.format(AppConfigs.portraitSpell, ob.Portrait);
            break;
        case ITEM: url = String.format(AppConfigs.portraitItem, ob.Portrait);
            break;
    }

    Picasso.with(mContext).load(url).into(holder.ivRetrato);

}

@Override
public int getItemCount() {
    return this.mObjecterList.size();
}

public static class MainAdapterViewHolder extends RecyclerView.ViewHolder {

    public TextView tvNameText;
    public ImageView ivRetrato;

    public MainAdapterViewHolder(View itemView) {
        super(itemView);

        this.tvNameText = (TextView) itemView.findViewById(R.id.tvNameText);
        this.ivRetrato = (ImageView) itemView.findViewById(R.id.ivImagePortrait);
    }

    public void bind(final ObjectAdapter  objectAdapterListItem, final OnObjectClickListener listener) {
        itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                listener.OnObjectClickListener(objectAdapterListItem);
            }
        });
    }
}
}