0

I am using a RecyclerView Inside a Fragment but When I run the app The recyclerView is not shown on Screen. The CustomAdapter Constructor is getting called but ViewHolder Methods are not getting called.

Please help.

Below is the Code of Fragment.

public class StatFragment extends Fragment {

List<UsageLog> usageLogs;
List<UsageLog> loadWiseUsageLogs;
int recordType;
StatsAdapter statsAdapter;
RecyclerView statRecyclerView;

public StatFragment() {
    // Required empty public constructor
}


public static StatFragment newInstance(int recordType) {

    Bundle args = new Bundle();
    args.putInt("recordType", recordType);
    StatFragment fragment = new StatFragment();
    fragment.setArguments(args);
    return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    recordType=getArguments().getInt("recordType");
    loadWiseUsageLogs=UsageLog.getOverview(new Date(Calendar.getInstance().getTimeInMillis()), recordType);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View v= inflater.inflate(R.layout.fragment_stat, container, false);
    statRecyclerView =(RecyclerView)v.findViewById(R.id.stat_recycler_view);

    statsAdapter=new StatsAdapter(loadWiseUsageLogs);
    statRecyclerView.setAdapter(statsAdapter);
    statRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
    return v;
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
}

/***************************************************************************************************
 //Code for RecylerView Adapter and View Holder
 ***************************************************************************************************/

class StatsAdapter extends RecyclerView.Adapter<StatsAdapter.ViewHolder>{
    List<UsageLog> usageLogs;

    public StatsAdapter(List<UsageLog> usageLogs) {
        this.usageLogs = usageLogs;
        Log.d("Adapter","called"+"size="+usageLogs.size());
    }

    @Override
    public StatsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {            
        LayoutInflater inflater=LayoutInflater.from(parent.getContext());
        View loadStatView=inflater.inflate(R.layout.element_stat_load_single, parent, false);
        ViewHolder loadViewHolder=new ViewHolder(loadStatView);
        Log.d("onCreateVH","called");
        return loadViewHolder;
    }

    @Override
    public void onBindViewHolder(StatsAdapter.ViewHolder holder, int position) {            holder.tvLoadName.setText(usageLogs.get(position).getLoad().getName());
        holder.tvLoadUnits.setText(usageLogs.get(position).getUnits());
        Log.d("onBind", "called");
    }

    @Override
    public int getItemCount() {
        return 0;
    }

    class ViewHolder  extends RecyclerView.ViewHolder{
        TextView tvLoadName,tvLoadUnits;
        ImageView imageLoad;

        public ViewHolder(View itemView) {
            super(itemView);
            tvLoadName=(TextView) itemView.findViewById(R.id.stat_load_name);
            tvLoadUnits=(TextView) itemView.findViewById(R.id.stat_load_unit);
            imageLoad=(ImageView)itemView.findViewById(R.id.stat_load_icon);
        }
    }
}

}
hata
  • 8,429
  • 5
  • 32
  • 57
vipin
  • 219
  • 1
  • 3
  • 8

0 Answers0