2017-10-17 14 views
0

アダプタをRecyclerViewに設定しましたが、私のリストサイズはアダプタで送信する動的(2)です。
私のコードをデバッグすると、onCreateViewHolderonBindViewHolderは決して呼び出されませんでした。RecyclerViewアダプタが設定されていません

これは私がアダプターを設定したコードです。

mRecycler_Downloaded_List.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, true)); 
mRecycler_Downloaded_List.setHasFixedSize(true); 
PurchaseListAdapterDownloded = new Recycler_purchase_list_adapter_downloaded(PurchaseList_Dummy.this, mList_downlaoded, false); 
mRecycler_Downloaded_List.setAdapter(PurchaseListAdapterDownloded); 

これは値を取得して設定するアダプタコードです。

package com.structure.adapters; 

import android.content.Context; 
import android.graphics.Typeface; 
import android.support.v4.widget.ContentLoadingProgressBar; 
import android.support.v7.widget.RecyclerView; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ImageView; 
import android.widget.RelativeLayout; 
import android.widget.TextView; 

import com.bumptech.glide.Glide; 
import com.bumptech.glide.load.engine.DiskCacheStrategy; 
import com.structure.R; 
import com.structure.beans.Response_GetVideoDetail; 

import java.util.ArrayList; 

/** 
* Created by root on 26/4/17. 
*/ 
public class Recycler_purchase_list_adapter_downloaded extends RecyclerView.Adapter<Recycler_purchase_list_adapter_downloaded.ViewHolder> { 
    Context context; 
    Typeface face; 
    ArrayList<Response_GetVideoDetail.ResponseBean.VideodetailsBean> mList; 
    View view; 
    boolean mIsDownloadedList; 
    private LayoutInflater inflater; 



    public Recycler_purchase_list_adapter_downloaded(Context context, ArrayList<Response_GetVideoDetail.ResponseBean.VideodetailsBean> mList, boolean mIsDownloadedList) { 
     this.context = context; 
     this.mList = mList; 
     this. inflater = LayoutInflater.from(context); 
     this.mIsDownloadedList = mIsDownloadedList; 
     this.notifyDataSetChanged(); 
    } 

    @Override 
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     // View view = LayoutInflater.from(context).inflate(R.layout.item_purchase_list, parent, false); 

     View view = inflater.inflate(R.layout.item_purchase_list, parent, false); 
     System.out.println("OnCreateView"+"onCreateViewHolder>>>>>>>>>>>>"); 
     ViewHolder holder = new ViewHolder(view); 
     return holder; 

    } 


    @Override 
    public void onBindViewHolder(ViewHolder holder, final int position) { 
     holder.mtvName.setText(mList.get(position).getName()); 
     holder.mDesc.setText(mList.get(position).getDescription()); 
     holder.itemTime_tv.setText(mList.get(position).getDuration()); 
     Glide.with(context).load(/*APIs.IMGAE_BASE_URL +*/ mList.get(position).getPic()) 
       .diskCacheStrategy(DiskCacheStrategy.ALL) 
       .dontTransform().dontAnimate() 
       .error(R.drawable.demo_song).into(holder.mImg); 

     System.out.println("OnCreateView"+"onBindViewHolder>>>>>>>>>>>>"); 



    } 

    @Override 
    public int getItemCount() { 

     return mList.size(); 
    } 


    class ViewHolder extends RecyclerView.ViewHolder { 
     private TextView mtvName, itemTime_tv,mDesc; 
     private ContentLoadingProgressBar mProgressBar; 
     private RelativeLayout mLayout; 
     // private ItemPurchaseListBinding binding; 
     private ImageView mImg; 

     public ViewHolder(View itemView) { 
      super(itemView); 
      mtvName = (TextView) itemView.findViewById(R.id.name_item); 
      mDesc = (TextView) itemView.findViewById(R.id.desc); 
      itemTime_tv = (TextView) itemView.findViewById(R.id.itemtime); 
      mProgressBar = (ContentLoadingProgressBar) itemView.findViewById(R.id.seekBar); 
      mImg = (ImageView) itemView.findViewById(R.id.img_songName); 
      mLayout = (RelativeLayout) itemView.findViewById(R.id.rel_purchaselist); 

      // itemTime_tv.setTypeface(face); 
      // mtvName.setTypeface(face); 

      itemView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        // getAdapterPosition(); 
        //  registration.getImage(getAdapterPosition()); 
       } 
      }); 
     } 

    } 




} 

この問題を解決するのを手伝ってください。私はすべてを探しました。 誰かが解決策を持っている場合は、共有してください。リストサイズが1のアダプタを設定すると、コードをデバッグしました。 ありがとうございます。

+1

完全なアクティビティを表示する –

+0

は、mList_downlaodedの初期化コードを共有してください。 –

+0

ArrayList mList_downlaoded = new ArrayList <>(); – umesh

答えて

0

アダプターの作成とリストのセッターを分けると、アダプターを操作する方が簡単だと思います。

mRecycler_Downloaded_List.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, true)); 
mRecycler_Downloaded_List.setHasFixedSize(true); 
PurchaseListAdapterDownloded = new Recycler_purchase_list_adapter_downloaded(PurchaseList_Dummy.this,false); 
mRecycler_Downloaded_List.setAdapter(PurchaseListAdapterDownloded); 

をそして、それがすでに作成されているときには、メソッドのセットリストにリストを追加します:

あなたは初期化を開始することができます

private void setList(ArrayList<Response_GetVideoDetail.ResponseBean.VideodetailsBean> mList) { 
     this.mList = mList; 
     notifyDataSetChanged(); 
} 
+0

私は内部のadpter.whereを置くセットリストメソッドを呼び出します。 – umesh

+0

メソッドsetListをアダプタクラスに配置する必要があります。あなたの活動の中でメソッドを呼び出します。 これで、アダプタが完全に作成されたことを確認してから、notifyOnDataSetChanged – RDO

0

私はあなたが追加する前に、アダプタを設定していると思いますあなたのmList_downlaodedリストのデータ。したがって、リストにデータを追加する前にアダプタを初期化する場合は、 を呼び出すだけです。PurchaseListAdapterDownloded.notifyDataSetChanged();リストにデータを追加した後

関連する問題