RecyclerView仅显示一项

时间:2019-07-04 22:01:09

标签: android android-recyclerview

我有两个项目,我想同时显示两个项目。但是问题是,我只能在RecyclerView中显示一项。

我已经尝试在一个适配器中创建两个ViewHolder,但仍然只能显示一个项目。

ShowFavouriteList.java

UnicodeString Maskstr = Edit2->Text; //My char*Problem above
const char *chr = AnsiString(Maskstr).c_str();
char* MaskConverted = const_cast<char*>( chr );
unsigned char NewArray[40];
strcpy( (char*) NewArray, MaskConverted  );

AdapterFavList1.java

public class ShowFavouriteList extends AppCompatActivity {

    private RecyclerView recyclerView;
    private TextView noFavtsTV;
    AppPreferences appPreferences;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show_favourite_list);

        SwipeRefreshLayout pullToRefresh = findViewById(R.id.pullToRefresh);
        pullToRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                finish();
                startActivity(getIntent());
            }
        });

        //toolbar logo and desc
        Toolbar topToolBar = (Toolbar) findViewById(R.id.toolbarTidur);
        setSupportActionBar(topToolBar); //munculkan menu ke toolbar
        getSupportActionBar().setDisplayHomeAsUpEnabled(true); //this line shows back button

        recyclerView = findViewById(R.id.recycler_view);
        noFavtsTV = findViewById(R.id.no_favt_text);

        SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("MyPref", 0);
        SharedPreferences sPTuru = getApplicationContext().getSharedPreferences("MyTuru", 0);
        PreferenceMenejer preferenceMenejer = new PreferenceMenejer(sharedPreferences, sPTuru);
        appPreferences = new AppPreferences(preferenceMenejer);

        fetchData();

    } // Oncreate

    private void fetchData() {
        List<Story> storyList = appPreferences.getFavouriteCardList();
        List<YukulModel> yukulList = appPreferences.getFavouriteYukul();

        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
        recyclerView.setAdapter(new AdapterFavList1(this, storyList, yukulList, appPreferences));

        if(storyList != null && storyList.size() > 0) {
            showNoFavtText(false);

            for(int i=0; i<storyList.size(); i++) {
                Story story = new Story();
                story.getName();
                storyList.add(story);
            }
        }

        if(yukulList != null && yukulList.size() > 0) {
            showNoFavtText(false);

            for(int i=0; i<yukulList.size(); i++) {
                YukulModel stori = new YukulModel();
                stori.getName();
                yukulList.add(stori);
            }
        }

    }

    private void showNoFavtText(boolean show) {
        noFavtsTV.setVisibility(show ? View.VISIBLE : View.GONE); //jika data yang ditampilkan tidak ada, maka show noFavsTv
        recyclerView.setVisibility(show ? View.GONE : View.VISIBLE); //jika data yang ditampilkan tidak ada, maka don't show rV
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    // Agar back button pada halaman induk settings berfungsi
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                this.finish();
                return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

我希望有人可以解决此问题,以便我可以同时显示它们。

代码已更新[工作]

AdapterFavList1.java

public class AdapterFavList1 extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    public static final String ACTION_LIKE_IMAGE_CLICKEDD = "action_like_image_button";
    final int VIEW_TYPE_TIDUR = 0;
    final int VIEW_TYPE_YUKUL = 1;

    private Context context;
    private List<Story> storyList;
    private List<YukulModel> yukulList;

    private int changedItemPosition;
    private boolean isLiked;
    private AppPreferences appPreferences;
    private SharedPreferences preferences;
    private CheckBox checkBox;

    public AdapterFavList1(Context context, List<Story> storyList, List<YukulModel> yukulList, AppPreferences appPreferences) {
        this.context = context;
        this.storyList = storyList;
        this.yukulList = yukulList;
        this.appPreferences = appPreferences;
    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        if(viewType == VIEW_TYPE_TIDUR) {
            return new tidurViewHolder(LayoutInflater.from(context).inflate(R.layout.item_story_favourite_list, parent, false));
        }
        if(viewType == VIEW_TYPE_YUKUL) {
            return new yukulViewHolder(LayoutInflater.from(context).inflate(R.layout.item_favourite_yukul, parent, false));
        }

        return null;
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
        if(holder instanceof tidurViewHolder){
            ((tidurViewHolder) holder).setViewData(storyList.get(position), holder.getAdapterPosition());
        }

        if(holder instanceof yukulViewHolder){
            ((yukulViewHolder) holder).viewDataYukul(yukulList.get(position), holder.getAdapterPosition());
        }
    }

    @Override
    public int getItemCount() {
        if(storyList== null) {
            return yukulList.size();
        }
        else if(storyList != null) {
            return storyList.size();
        }

        if(yukulList==null) {
            return storyList.size();
        }
        else {
            return yukulList.size();
        }

    }

    @Override
    public int getItemViewType(int position){
        if(storyList != null && storyList.size() > 0){
            return VIEW_TYPE_TIDUR;
        }

        if(yukulList != null && yukulList.size() > 0){
            return VIEW_TYPE_YUKUL;
        }

        return -1;
    }


    public void tidurPutHeart(boolean isChecked, int position) {
        SharedPreferences tidursharedPreferences = context.getSharedPreferences("Turu", Activity.MODE_PRIVATE);
        SharedPreferences.Editor tidureditor = tidursharedPreferences.edit();
        Story tidurstory = storyList.get(position);
        tidureditor.putBoolean(tidurstory.getIdStory(), isChecked);
        tidureditor.commit();
    }

    public boolean tidurGetHeart(int position) {
        SharedPreferences tidursharedPreferences = context.getSharedPreferences("Turu", Activity.MODE_PRIVATE);
        Story tidurstory = storyList.get(position);
        boolean isChecked = tidursharedPreferences.getBoolean(tidurstory.getIdStory(), false);
        return isChecked;
    }

    public void yukulPutHeart(boolean isChecked, int position) {
        SharedPreferences yukulsharedPreferences = context.getSharedPreferences("Yukul", Activity.MODE_PRIVATE);
        SharedPreferences.Editor yukuleditor = yukulsharedPreferences.edit();
        YukulModel yukulstory = yukulList.get(position);
        yukuleditor.putBoolean(yukulstory.getIdStory(), isChecked);
        yukuleditor.commit();
    }

    public boolean yukulGetHeart(int position) {
        SharedPreferences yukulsharedPreferences = context.getSharedPreferences("Yukul", Activity.MODE_PRIVATE);
        YukulModel yukulstory = yukulList.get(position);
        boolean isChecked = yukulsharedPreferences.getBoolean(yukulstory.getIdStory(), false);
        return isChecked;
    }


    //ViewHolder
        public class tidurViewHolder extends RecyclerView.ViewHolder {
        private TextView textView;
        private CheckBox likeCheckBox;

        public tidurViewHolder(View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.text_view);
            likeCheckBox = itemView.findViewById(R.id.like_button_cb);

            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    // send selected contact in callback
                    Story story = storyList.get(getLayoutPosition());
                    int ambilId = Integer.parseInt(story.getIdStory());

                    if (0 == ambilId) {
                        Intent myIntent = new Intent(view.getContext(), DoaMauTidur.class);
                        view.getContext().startActivity(myIntent);

                    } else if (1 == ambilId) {
                        Intent myIntent = new Intent(view.getContext(), DoaBangunt.class);
                        view.getContext().startActivity(myIntent);

                    } else if (2 == ambilId) {
                        Intent myIntent = new Intent(view.getContext(), DoaJimak.class);
                        view.getContext().startActivity(myIntent);

                    } else {
                        Toast.makeText(context, "No destination page", Toast.LENGTH_SHORT).show();
                    }
                }
            });
        } // itemView


        public void setViewData(final Story story, final int adapterPosition) {

            textView.setText(story.getName());

            if (story.getIsLiked() == 1) {
                likeCheckBox.setChecked(false);
            }
            else {
                likeCheckBox.setChecked(true);
            }

            boolean isChecked = tidurGetHeart(getAdapterPosition()); // The problem lays here
            likeCheckBox.setChecked(isChecked);

            likeCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    changedItemPosition = adapterPosition;
                    if (buttonView.isPressed()) {
                        if (isChecked) {
                            //
                        }
                        else {
                            isLiked = false;
                            tidurPutHeart(isChecked, getAdapterPosition());
                            appPreferences.deleteCard(story.getIdStory());
                            updateLikes();
                            Toast.makeText(context, "Removed", Toast.LENGTH_SHORT).show();
                        }
                    }
                }
            });

        } //setviewdata

        public void updateLikes() {
            if (!isLiked && storyList.get(changedItemPosition).getIsLiked() == 0) { //jika like dicabut (pada posisi hati yang sedang merah) di halaman favourite list
                storyList.get(changedItemPosition).setIsLiked(0); //maka cabut juga warna merah di halaman favourite list
                storyList.remove(getAdapterPosition());
                notifyItemRangeChanged(getAdapterPosition(), storyList.size());
                notifyItemRemoved(getAdapterPosition());
            }

        } //updateLikes

    } //viewholder

    public class yukulViewHolder extends RecyclerView.ViewHolder {
        private TextView textView;
        private CheckBox likeCheckBox;

        public yukulViewHolder(View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.text_view);
            likeCheckBox = itemView.findViewById(R.id.like_button_cb);

            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    // send selected contact in callback
                    Story story = storyList.get(getLayoutPosition());
                    int ambilId = Integer.parseInt(story.getIdStory());

                    if (0 == ambilId) {
                        Intent myIntent = new Intent(view.getContext(), DoaMauTidur.class);
                        view.getContext().startActivity(myIntent);

                    } else if (1 == ambilId) {
                        Intent myIntent = new Intent(view.getContext(), DoaBangunt.class);
                        view.getContext().startActivity(myIntent);

                    } else if (2 == ambilId) {
                        Intent myIntent = new Intent(view.getContext(), DoaJimak.class);
                        view.getContext().startActivity(myIntent);

                    } else {
                        Toast.makeText(context, "No destination page", Toast.LENGTH_SHORT).show();
                    }
                }
            });
        } //itemview

            public void viewDataYukul(final YukulModel story, final int adapterPosition) {

                textView.setText(story.getName());

                if (story.getIsLiked() == 1) {
                    likeCheckBox.setChecked(false);
                }
                else {
                    likeCheckBox.setChecked(true);
                }

                boolean isChecked = yukulGetHeart(getAdapterPosition()); // The problem lays here
                likeCheckBox.setChecked(isChecked);

                likeCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                        changedItemPosition = adapterPosition;
                        if (buttonView.isPressed()) {
                            if (isChecked) {
                                //
                            }
                            else {
                                isLiked = false;
                                yukulPutHeart(isChecked, getAdapterPosition());
                                appPreferences.deleteCardYukul(story.getIdStory());
                                updateLikeYukul();
                                Toast.makeText(context, "Removed", Toast.LENGTH_SHORT).show();
                            }
                        }
                    }
                });

            } //viewdatayukul

        public void updateLikeYukul() {
            if (!isLiked && yukulList.get(changedItemPosition).getIsLiked() == 0) { //jika like dicabut (pada posisi hati yang sedang merah) di halaman favourite list
                yukulList.get(changedItemPosition).setIsLiked(0); //maka cabut juga warna merah di halaman favourite list
                yukulList.remove(getAdapterPosition());
                notifyItemRangeChanged(getAdapterPosition(), yukulList.size());
                notifyItemRemoved(getAdapterPosition());
            }
        } //updateLikes

    } //yukulviewholder


} //HomeAdapter

ShowFavouriteList.java

public class AdapterFavList1 extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    public static final String ACTION_LIKE_IMAGE_CLICKEDD = "action_like_image_button";
    final int VIEW_TYPE_TIDUR = 0;
    final int VIEW_TYPE_YUKUL = 1;

    private Context context;
    private AppPreferences appPreferences;
    private List<Story> storyList;
    private List<YukulModel> yukulList;
    private List<Object> collection = new ArrayList<Object>();

    private int changedItemPosition;
    private int posisiItemYukul;
    private boolean isLiked;

    public AdapterFavList1(Context context, List<Story> storyList, List<YukulModel> yukulList, AppPreferences appPreferences) {

        this.context = context;
        this.storyList = storyList;
        this.yukulList = yukulList;
        this.appPreferences = appPreferences;

        addData();
    }

    public void addData() {
        storyList = appPreferences.getFavouriteCardList();
        yukulList = appPreferences.getFavouriteYukul();

        if(storyList != null && storyList.size() > 0) {
            collection.addAll(storyList);
        }

        if(yukulList != null && yukulList.size() > 0) {
            collection.addAll(yukulList);
        }
    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        if(viewType == VIEW_TYPE_TIDUR) {
            return new tidurViewHolder(LayoutInflater.from(context).inflate(R.layout.item_story_favourite_list, parent, false));
        }
        if(viewType == VIEW_TYPE_YUKUL) {
            return new yukulViewHolder(LayoutInflater.from(context).inflate(R.layout.item_favourite_yukul, parent, false));
        }

        return null;
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {

        Object item = collection.get(position);

        if(holder instanceof tidurViewHolder){
            ((tidurViewHolder) holder).setViewData((Story) item, holder.getAdapterPosition());
        }

        if(holder instanceof yukulViewHolder){
            ((yukulViewHolder) holder).viewDataYukul((YukulModel) item, holder.getAdapterPosition());
        }
    }

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

    @Override
    public int getItemViewType(int position){
        Object item = collection.get(position);

        if(item instanceof Story) {
            return VIEW_TYPE_TIDUR;
        }

        if(item instanceof YukulModel){
            return VIEW_TYPE_YUKUL;
        }

        return -1;
    }

    public void tidurPutHeart(boolean isChecked, Story tidurstory) {
        SharedPreferences tidursharedPreferences = context.getSharedPreferences("Turu", Activity.MODE_PRIVATE);
        SharedPreferences.Editor tidureditor = tidursharedPreferences.edit();
        tidureditor.putBoolean(tidurstory.getIdStory(), isChecked);
        tidureditor.commit();
    }

    public void yukulPutHeart(boolean isChecked, YukulModel yukulstory) {
        SharedPreferences yukulsharedPreferences = context.getSharedPreferences("Yukul", Activity.MODE_PRIVATE);
        SharedPreferences.Editor yukuleditor = yukulsharedPreferences.edit();
        yukuleditor.putBoolean(yukulstory.getIdStory(), isChecked);
        yukuleditor.commit();
    }

    //ViewHolder
    public class tidurViewHolder extends RecyclerView.ViewHolder {
        private TextView textView;
        private CheckBox likeCheckBox;

        public tidurViewHolder(View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.text_view);
            likeCheckBox = itemView.findViewById(R.id.like_button_cb);

            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    // send selected contact in callback
                    Story story = storyList.get(getLayoutPosition());
                    int ambilId = Integer.parseInt(story.getIdStory());

                    if (0 == ambilId) {
                        Intent myIntent = new Intent(view.getContext(), DoaMauTidur.class);
                        view.getContext().startActivity(myIntent);

                    } else if (1 == ambilId) {
                        Intent myIntent = new Intent(view.getContext(), DoaBangunt.class);
                        view.getContext().startActivity(myIntent);

                    } else if (2 == ambilId) {
                        Intent myIntent = new Intent(view.getContext(), DoaJimak.class);
                        view.getContext().startActivity(myIntent);

                    } else {
                        Toast.makeText(context, "No destination page", Toast.LENGTH_SHORT).show();
                    }
                }
            });
        } // itemView


        public void setViewData(final Story story, final int adapterPosition) {

            textView.setText(story.getName());

            if (story.getIsLiked() == 1) {
                likeCheckBox.setChecked(false);
            }
            else {
                likeCheckBox.setChecked(true);
            }

            likeCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                    changedItemPosition = adapterPosition;

                    if (buttonView.isPressed()) {
                        if (isChecked) {
                            //
                        }
                        else {
                            isLiked = false;
                            tidurPutHeart(isChecked, story);
                            appPreferences.deleteCard(story.getIdStory());
                            updateLikes();
                            Toast.makeText(context, "Removed", Toast.LENGTH_SHORT).show();

                            if(collection.size() == 0) {
                                ((Activity)context).finish();
                                context.startActivity(((Activity) context).getIntent());
                            }
                        }
                    }
                }
            });

        } //setviewdata

        public void updateLikes() {
            if (!isLiked && storyList.get(changedItemPosition).getIsLiked() == 0) { //jika like dicabut (pada posisi hati yang sedang merah) di halaman favourite list
                storyList.get(changedItemPosition).setIsLiked(0); //maka cabut juga warna merah di halaman favourite list
                notifyItemRangeChanged(getAdapterPosition(), collection.size());
                collection.remove(getAdapterPosition());
                notifyItemRemoved(getAdapterPosition());
            }

        } //updateLikes

    } //viewholder

    public class yukulViewHolder extends RecyclerView.ViewHolder {
        private TextView textView;
        private CheckBox likeCheckBox;

        public yukulViewHolder(View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.text_view);
            likeCheckBox = itemView.findViewById(R.id.like_button_cb);

            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    // send selected contact in callback
                    Story story = storyList.get(getLayoutPosition());
                    int ambilId = Integer.parseInt(story.getIdStory());

                    if (0 == ambilId) {
                        Intent myIntent = new Intent(view.getContext(), DoaMauTidur.class);
                        view.getContext().startActivity(myIntent);

                    } else if (1 == ambilId) {
                        Intent myIntent = new Intent(view.getContext(), DoaBangunt.class);
                        view.getContext().startActivity(myIntent);

                    } else if (2 == ambilId) {
                        Intent myIntent = new Intent(view.getContext(), DoaJimak.class);
                        view.getContext().startActivity(myIntent);

                    } else {
                        Toast.makeText(context, "No destination page", Toast.LENGTH_SHORT).show();
                    }
                }
            });
        } //itemview

        public void viewDataYukul(final YukulModel yukulId, final int adapterPosition) {

            textView.setText(yukulId.getName());

            if (yukulId.getIsLiked() == 1) {
                likeCheckBox.setChecked(false);
            }
            else {
                likeCheckBox.setChecked(true);
            }

            likeCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                    posisiItemYukul = adapterPosition;

                    if (buttonView.isPressed()) {
                        if (isChecked) {
                            //
                        }
                        else {
                            isLiked = false;
                            yukulPutHeart(isChecked, yukulId);
                            appPreferences.deleteCardYukul(yukulId.getIdStory());
                            updateLikeYukul();
                            Toast.makeText(context, "Removed", Toast.LENGTH_SHORT).show();

                            if(collection.size() == 0) {
                                ((Activity)context).finish();
                                context.startActivity(((Activity) context).getIntent());
                            }
                        }
                    }
                }
            });

        } //viewdatayukul

        public void updateLikeYukul() {
            if (!isLiked && yukulList.get(changedItemPosition).getIsLiked() == 0) { //jika like dicabut (pada posisi hati yang sedang merah) di halaman favourite list
                yukulList.get(changedItemPosition).setIsLiked(0); //maka cabut juga warna merah di halaman favourite list
                notifyItemRangeChanged(getAdapterPosition(), collection.size());
                collection.remove(getAdapterPosition());
                notifyItemRemoved(getAdapterPosition());
            }
        } //updateLikes

    } //yukulviewholder


} //HomeAdapter

2 个答案:

答案 0 :(得分:2)

我建议不要在适配器中使用2个列表,而只使用1个包含Objects的列表。这样可以减少很多复杂性,您只需要在需要时检查实际类型即可。

public class AdapterFavList1 extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    public static final String ACTION_LIKE_IMAGE_CLICKEDD = "action_like_image_button";

    final int VIEW_TYPE_TIDUR = 0;
    final int VIEW_TYPE_YUKUL = 1;

    private Context context;
    private int changedItemPosition;
    private boolean isLiked;
    private AppPreferences appPreferences;
    private SharedPreferences preferences;
    private CheckBox checkBox;

    private List<Object> collection = new ArrayList<Object>();

    public AdapterFavList1(Context context, List<Story> storyList, List<YukulModel> yukulList, AppPreferences appPreferences) {
        this.context = context;
        this.appPreferences = appPreferences;

        // TODO: Sort these however you wish.
        collection.addAll(storyList);
        collection.addAll(yukulList);
    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        if(viewType == VIEW_TYPE_TIDUR) {
            return new tidurViewHolder(LayoutInflater.from(context).inflate(R.layout.item_story_favourite_list, parent, false));
        }
        if(viewType == VIEW_TYPE_YUKUL) {
            return new yukulViewHolder(LayoutInflater.from(context).inflate(R.layout.item_favourite_yukul, parent, false));
        }

        return null;
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
        Object item = collection.get(position);

        if(holder instanceof tidurViewHolder){
            ((tidurViewHolder) holder).setViewData((Story) item, holder.getAdapterPosition());
        }

        if(holder instanceof yukulViewHolder){
            ((yukulViewHolder) holder).viewDataYukul((YukulModel) item, holder.getAdapterPosition());
        }
    }

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

    @Override
    public int getItemViewType(int position){
        Object item = collection.get(position);

        if(item instanceof Story) {
            return VIEW_TYPE_TIDUR;
        }

        if(item instanceof YukulModel){
            return VIEW_TYPE_YUKUL;
        }

        return -1;
    }
}

答案 1 :(得分:1)

您需要检查适配器中如何覆盖getItemViewType()和getItemCount()方法。

@Override
    public int getItemCount() {
        if(storyList== null) {
            return yukulList.size();
        }
        else if(storyList != null) {
            return storyList.size();
        }

        if(yukulList==null) {
            return storyList.size();
        }
        else {
            return yukulList.size();
        }

    }

@Override
public int getItemViewType(int position){
    if(storyList != null && storyList.size() > 0){
        return VIEW_TYPE_TIDUR;
    }

    if(yukulList != null && yukulList.size() > 0){
        return VIEW_TYPE_YUKUL;
    }

    return -1;
}

在getItemViewType()的实现中,如果有任何storyList数据,则只会在recyclerView中显示该数据,因为对于传递给该方法的每个位置值,都会返回VIEW_TYPE_TIDUR。除非storyList数据为null或为空,否则程序流将永远不会达到yukulList的条件检查。

因此,在您的getItemViewType()实现中,您需要确定要在传递给方法的位置显示的项目类型,并相应地返回VIEW_TYPE_TIDUR或VIEW_TYPE_YUKUL。

在getItemCount()的实现中,您仅返回一种类型的大小。您应该返回storyList和yukulList大小的总计数。