簡體   English   中英

帶有帶有recyclerview的選項卡片段的viewpager僅顯示數據庫中的第一項

[英]viewpager with tab fragments with recyclerview just show first item from database

標題說明了所有情況,但以防萬一,我遇到的問題是我有一個帶兩個標簽的viewpager,一個帶recyclerview的標簽,可從sqlite數據庫中獲取數據,但僅顯示第一個條目,但我創建了更多標簽。

這是我的recyclerview適配器

public class RecyclerViewMessagesAdapter extends RecyclerView.Adapter<RecyclerViewMessagesAdapter.TextMessagesViewHolder>{

private DatabaseHandler databaseHandler;
private Context context;

public RecyclerViewMessagesAdapter(Context context){
    this.context = context;
    databaseHandler = new DatabaseHandler(context);
}

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

@Override
public TextMessagesViewHolder onCreateViewHolder(ViewGroup parent,int viewType){
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_messages, parent, false);
    TextMessagesViewHolder textMessagesViewHolder = new TextMessagesViewHolder(view);
    return textMessagesViewHolder;
}

public static class TextMessagesViewHolder extends RecyclerView.ViewHolder {

    TextView textviewPhoneNumber, textviewDate;

    TextMessagesViewHolder(View itemView) {
        super(itemView);
        textviewPhoneNumber = (TextView)itemView.findViewById(R.id.textview_recyclerview_phone_number);
        textviewDate = (TextView)itemView.findViewById(R.id.textview_recyclerview_date_to_send);
    }
}

@Override
public void onBindViewHolder(TextMessagesViewHolder holder, int position) {
    holder.textviewPhoneNumber.setText(databaseHandler.getMessage(position+1).getPhoneNumber());
    holder.textviewDate.setText(String.valueOf(databaseHandler.getMessage(position+1).getDate()));
}

@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
    super.onAttachedToRecyclerView(recyclerView);
}

}

這是帶有recyclerview的fragment類。

public class FragmentHistoryTab extends Fragment{

private View rootView;
private DatabaseHandler databaseHandler;
private TextView textviewEmptySavings;
private RecyclerView messagesRecyclerView;
private OnFragmentInteractionListener mListener;

public FragmentHistoryTab() {

}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    rootView = inflater.inflate(R.layout.fragment_history_tab,container,false);

    return rootView;
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    databaseHandler = new DatabaseHandler(getContext());
    textviewEmptySavings = (TextView)rootView.findViewById(R.id.textview_empty_recyclerview);

    RecyclerViewMessagesAdapter adapter = new RecyclerViewMessagesAdapter(getContext());
    messagesRecyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerview_saved_messages);

    messagesRecyclerView.setHasFixedSize(true);
    LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());
    messagesRecyclerView.setLayoutManager(layoutManager);
    messagesRecyclerView.setAdapter(adapter);

    if (databaseHandler.getAllTextMessage().size() >= 1){
        textviewEmptySavings.setVisibility(View.GONE);
        messagesRecyclerView.setVisibility(View.VISIBLE);
    }else {
        textviewEmptySavings.setVisibility(View.VISIBLE);
        messagesRecyclerView.setVisibility(View.GONE);
    }
}

@Override
public void onStart() {
    super.onStart();
}

@Override
public void onResume() {
    super.onResume();
}

@Override
public void onPause() {
    super.onPause();
}

@Override
public void onStop() {
    super.onStop();
}

@Override
public void onAttach(Context context) {
    super.onAttach(context);
}

@Override
public void onDetach() {
    super.onDetach();
}

public interface OnFragmentInteractionListener {

}

}

提前致謝!

我不知道發生了什么,但它只是一個人解決了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM