RecyclerView на фрагмент - PullRequest
       13

RecyclerView на фрагмент

0 голосов
/ 03 июля 2018

я пытаюсь добавить обзор рециклера на фрагмент код фрагментов:

public class MediaPlayerController extends Fragment{
    private static final String TAG = "MediaPlayerController";

private RecyclerView recyclerViewb;
private RecycleViewAdapter myAdapter;
private ArrayList<String> myRecordings = new ArrayList<>();
//private DBHelper dbHelper;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    Log.d(TAG, "onCreateView: started");
    View v = inflater.inflate(R.layout.media_player_area, container, false);

    recyclerViewb = (RecyclerView)v.findViewById(R.id.recyclerViewXml);
    //dbHelper = new DBHelper(v.getContext(), null, null, 1);

    myRecordings.add("hau");
    myRecordings.add("hau2");
    myRecordings.add("hau3");
    myRecordings.add("hau4");
    myRecordings.add("ha5");
    myRecordings.add("hau23");
    myRecordings.add("ha31u");
    myRecordings.add("haudsa");

    System.out.println("what does this print?"+myRecordings);

    myAdapter = new RecycleViewAdapter(v.getContext(), myRecordings);

    recyclerViewb.setAdapter(myAdapter);
    recyclerViewb.setLayoutManager(new LinearLayoutManager(v.getContext()));

    Log.d(TAG, "onCreateView: returned");
    return v;
}

в журналах я вижу, что он даже не попадает в разделы кода RecycleViewAdapter, фрагмент полностью пустой я тоже не ошибаюсь

public class RecycleViewAdapter extends RecyclerView.Adapter<RecycleViewAdapter.ViewHolder>{
    private static final String TAG = "RecycleViewAdapter";


private Context mContext;
private ArrayList<String> mRecName = new ArrayList<>();

public RecycleViewAdapter(Context mContext, ArrayList<String> mRecName) {
    this.mContext = mContext;
    this.mRecName = mRecName;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    Log.d(TAG, "onCreateViewHolder: i am here");
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.single_row_recycle, parent, false);
    ViewHolder holder = new ViewHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
    Log.d(TAG, "onBindViewHolder: called");
    holder.recTxt.setText(mRecName.get(position).toString());


    holder.parentLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(mContext, "sas gamaw", Toast.LENGTH_LONG);
        }
    });

}

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

public class ViewHolder extends RecyclerView.ViewHolder{

    RelativeLayout parentLayout;
    TextView recTxt;

    public ViewHolder(View itemView) {
        super(itemView);
        recTxt = itemView.findViewById(R.id.recTextView);
        parentLayout = itemView.findViewById(R.id.parentLayoutXml);
    }
}

}

в журналах отображает только запущенный oncreateView и список рассылки myRecordings

  • onCreateView: запущено
  • I / System.out: что это печатает? [Hau, hau2, hau3, hau4, ha5, hau23, ha31u, haudsa]

  • MediaPlayerController: onCreateView: возвращено

я не могу думать о том, что идет не так: / пожалуйста, помогите

Я также хочу добавить, что я довольно новичок в Android Studio, спасибо

1 Ответ

0 голосов
/ 03 июля 2018

ваша проблема с кодом в адаптере Recycler в методе getItemCount (), Вы не возвращаете ни одного предмета, вы должны изменить его на:

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