0
我已經設置了一個應用程序,它使用來自SQL數據庫的信息填充回收視圖,例如日期和時間等...我最近設置了一個小部分,顯示或隱藏一個文本視圖取決於它上面的文本視圖是否相同。例如,它將填充第一個Textview和13/06/2017,並使其可見,如果它想顯示的下一個日期是相同的,那麼它將簡單地隱藏文本視圖,允許多個結果具有相同的日期堆疊在彼此之下。使用回收視圖的Android textview可見性
問題 我的代碼正常工作,因爲它應該和它堆疊正確。我遇到的問題是,當我向下滾動頁面時,所有標題消失。這是由於我沒有正確設置我的viewHolder。你能否給我一些關於這種情況的指導。
綁定查看
代碼允許多個副本的疊加導致
if (position - 1 >= 0) {
String currentDate = cursor.getString(cursor.getColumnIndexOrThrow("complete_date"));
cursor.moveToPosition(position - 1);
String previousDate = cursor.getString(cursor.getColumnIndexOrThrow("complete_date"));
Log.i("storedDates", currentDate);
if (currentDate.equalsIgnoreCase(previousDate)) {
txtHeader.setVisibility(View.GONE);
cardView.setVisibility(View.GONE);
} else {
txtHeader.setVisibility(View.VISIBLE);
txtHeader.setText(currentDate);
}
} else {
txtHeader.setVisibility(View.VISIBLE);
txtHeader.setText(cursor.getString(cursor.getColumnIndexOrThrow("complete_date")));
}
開始ViewHolder
public static class Viewholder extends RecyclerView.ViewHolder{
TextView header;
public Viewholder(View itemView) {
super(itemView);
header = (TextView) itemView.findViewById(R.id.txtHeader);
}
}
OncreateViewholder和OnBindViewHolder
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = mCursorAdapter.newView(mContext,mCursorAdapter.getCursor(), parent);
return new Viewholder(view);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
mCursorAdapter.getCursor().moveToPosition(position);
mCursorAdapter.bindView(holder.itemView, mContext, mCursorAdapter.getCursor());
}
@Override
public int getItemCount() {
return mCursorAdapter.getCount();
}
任何建議都讚賞
使用模型類,並保持數據隱藏和查看。 – Amy
那麼你的話說,存儲模態權限textview的可見性?但是,如何將信息傳遞給模型並且不會發生onclick? – Steven
什麼是你的代碼中的cardView是它的頭部分? – Pavan