Android issue with RecyclerView: get override view

I use RecyclerView

for the first tab and ListView

for other tabs. when i scroll to RecyclerView

the same for ListView

. but when i iterate from the first tab to another tab and go back to the first tab i get below result

First:

enter image description here

After switching from another tab:

enter image description here

public class QuestionListAdapter extends RecyclerView.Adapter<QuestionListAdapter.CustomViewHolder> {

private List<QuestionListModel> feedItemList;
private Context mContext;
private String UserIDFromDatabase = "";
private ConnectionDetector connectionDetector;

public QuestionListAdapter(Context context, List<QuestionListModel> feedItemList, String UserIDFromDatabase) {
    this.feedItemList = feedItemList;
    this.mContext = context;
    this.UserIDFromDatabase = UserIDFromDatabase;
    connectionDetector = new ConnectionDetector(mContext);
}

@Override
public CustomViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.buds_profile_list_child, null);
    CustomViewHolder viewHolder = new CustomViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(CustomViewHolder customViewHolder, int i) {
    QuestionListModel feedItem = feedItemList.get(i);

    // Setting text view title
    customViewHolder.textView.setText(Html.fromHtml(feedItem.getQuestion()));
}

@Override
public int getItemCount() {
    return (null != feedItemList ? feedItemList.size() : 0);
}

public class CustomViewHolder extends RecyclerView.ViewHolder {
    protected TextView textView;

    public CustomViewHolder(View view) {
        super(view);
        this.textView = (TextView) view.findViewById(R.id.textView_ask_question_bplc);
    }
}

      

}

Fragment:

public class QuestionFragment extends Fragment {
    ConnectionDetector connectionDetector;
    View rootView;
    String UserIDFromDatabase = "";
    int sendToServerOffsetPub = 0;
    Boolean callSuccessful = false;
    private RecyclerView mRecyclerView;
    private QuestionListAdapter adapter;
    private com.oi.example.swipyrefreshlayout.SwipyRefreshLayout swipeRefreshLayout;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.public__question_fragment, container, false);
        initializeScreen();
        return rootView;
    }

    private void initializeScreen() {
        Utility.sp = getActivity().getSharedPreferences("User_Details", Context.MODE_PRIVATE);
        UserIDFromDatabase = Utility.sp.getString("UserID", "");

        // Initialize recycler view
        mRecyclerView = (RecyclerView) rootView.findViewById(R.id.recycler_public__question_paqf);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
        adapter = new QuestionListAdapter(getActivity(), Utility.arrayListQuestionListModels, UserIDFromDatabase);
        mRecyclerView.setAdapter(adapter);
        connectionDetector = new ConnectionDetector(getActivity());

        swipeRefreshLayout = (com.oi.example.swipyrefreshlayout.SwipyRefreshLayout) rootView.findViewById(R.id.swipe_refresh_public_listview_paqf);

        swipeRefreshLayout.setColorSchemeResources(R.color.color_dark_grey);

        swipeRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
            @Override
            public void onRefresh(SwipyRefreshLayoutDirection direction) {
                if (direction == SwipyRefreshLayoutDirection.BOTTOM) {
                    if (connectionDetector.isConnectingToInternet()) { // if 1
                        if ((Utility.publicCount > 0) && (Utility.arrayListQuestionListModels.size() > 0)) {
                            sendToServerOffsetPub++;
                            try {
                                callSuccessful = new getQuestionListOnProfile(getActivity(), Utility.referenceForProfileID, sendToServerOffsetPub, "PUBLIC").execute().get();
                            } catch (InterruptedException | ExecutionException e) {
                                callSuccessful = false;
                            }
                            if (!callSuccessful) {
                                adapter.notifyDataSetChanged();
                            }
                            // stopping swipe refresh
                            swipeRefreshLayout.setRefreshing(false);

                        } else {
                            // stopping swipe refresh
                            swipeRefreshLayout.setRefreshing(false);
                        }
                    } else {
                        Toast.makeText(getActivity(), Constants.INTERNET_CONNECTION, Toast.LENGTH_SHORT).show();
                        // stopping swipe refresh
                        swipeRefreshLayout.setRefreshing(false);
                    }

                }
            }
        });

        mRecyclerView.addOnItemTouchListener(new RecyclerItemClickListener(getActivity(), new RecyclerItemClickListener.OnItemClickListener() {
            @Override
            public void onItemClick(View view, int position) {

                Utility.ID = (Utility.arrayListQuestionListModels.get(position).getId());

                RateFeedController rateFeedController = new RateFeedController(getActivity());
                ArrayList<HashMap<String, String>> DetailsArraylist = new ArrayList<HashMap<String, String>>();
                DetailsArraylist = rateFeedController.getDetailsForSays(Utility.ID);

                if (DetailsArraylist.size() > 0) {
                    String creatorID = DetailsArraylist.get(0).get("userID");
                    if (creatorID.equalsIgnoreCase(BudsProfileActivity.UserIDFromDatabase)) {
                        Utility.attachedListPPFM = 2;
                    }

                    Intent intentSays = new Intent(getActivity(), SaysScreenActivity.class);
                    intentSays.putExtra("ProfileBACKFLAG", "BudsProfileActivity");
                    startActivity(intentSays);
                } else {
                    if (connectionDetector.isConnectingToInternet()) {// If 2
                        new GetFromServer(getActivity(), Integer.toString(Utility.ID), BudsProfileActivity.UserIDFromDatabase).execute();
                    } else {
                        Toast.makeText(getActivity(), Constants.INTERNET_CONNECTION, Toast.LENGTH_SHORT).show();
                    }// End of If 2
                }

            }
        }));

    }
}

      

+3


source to share


1 answer


I don't know what was wrong, but I just delete the parent layout SwipyRefreshLayout

and My problem will be solved ..



0


source







All Articles