如何在卡片或回收器视图中自动显示当前日期和时间?



如何避免日期和时间上的冗余?我正在使用Firebase数据库,因为我没有传递日期和时间,它会自动在卡片

中添加日期和时间下面是适配器类

public class Adapter extends FirebaseRecyclerAdapter<member, Adapter.myViewHolder> {

public Adapter(@NonNull FirebaseRecyclerOptions<member> options) {

super(options);
}
@Override
protected void onBindViewHolder(@NonNull Adapter.myViewHolder holder, int position, @NonNull 
member model) {
holder.mheadView.setText(model.getTitle());
holder.mdesView.setText(model.getDescription());

Glide.with(holder.imageView.getContext()).load(model.getImageuri()).into(holder.imageView);
holder.imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AppCompatActivity activity = (AppCompatActivity) v.getContext();

activity.getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container_view, 
new DetailsFragment(model.getTitle(), model.getImageuri())).addToBackStack(null).commit();
}
});

String date = new SimpleDateFormat("dd-MMM-yyy", Locale.getDefault()).format(new Date());
holder.Date.setText(date);
String time = "";
if (model.time == null) {
time = new SimpleDateFormat("hh:mm:a", Locale.getDefault()).format(new Date());
holder.Time.setText(time);
}
//    else {
//         holder.Time.setText(time);
//            }
//  holder.Time.setText(time);


@NonNull
@Override
public myViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardlayout, parent, 
false);

return new myViewHolder(view);
}
public static class myViewHolder extends RecyclerView.ViewHolder{
ImageView imageView;
TextView mheadView;
TextView mdesView;
TextView Date;
TextView Time;
ImageView edit,delete;
public myViewHolder(@NonNull View itemView) {
super(itemView);

Date=itemView.findViewById(R.id.date);
Time=itemView.findViewById(R.id.time);

}
}
}

这是我的成员类

public class member  {
String description, title, imageuri,time;

public member(){
}

public member(String description, String title, String imageuri,String time) {
this.description = description;
this.title = title;
this.imageuri = imageuri;
this.time=time;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getImageuri() {
return imageuri;
}
public void setImageuri(String imageuri) {
this.imageuri = imageuri;
}
}

所以在下面的图像中,相同的日期和时间反复显示我希望每张卡片的日期和时间不同。

我是Android新手,正在学习。

您可以使用此代码作为适配器,并通过从这个数组列表中获取值来设置日期和时间的值

ArrayList<HashMap<String, String>> dateTimeArrayList;
public Adapter(@NonNull FirebaseRecyclerOptions<member> options) {
super(options);
dateTimeArrayList = new ArrayList();
member m = options.getMember();
for(int i=0;i<m.size();i++){
HashMap<String, String> dateTimeHashMap = new HashMap<String, String>();
String date = new SimpleDateFormat("dd-MMM-yyy", Locale.getDefault()).format(new 
Date());
String  time = new SimpleDateFormat("hh:mm:a", Locale.getDefault()).format(new 
Date());
dateTimeHashMap.put("date", date);
dateTimeHashMap.put("time", time);
dateTimeArrayList.add(dateTimeHashMap);

}}

我认为这是因为recycleview的缘故所以我认为你可以将每张牌的时间添加到适配器的全局数组列表中并从每个位置分配到相关的牌

您可以在单独的Arraylist中添加时间,并将其传递给适配器的构造函数。数组列表的大小应该等于你的模型成员的大小所以它会根据

的位置返回时间

最新更新