- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如图所示,我的列表没有按照日期和时间排序
Add Appointment.java -> this is how i add my data to firebase
public class AddAppointment extends AppCompatActivity {
private FirebaseAuth firebaseAuth;
private FirebaseUser mCurrentUser;
private EditText dateApp,timeApp,nameTxt,addressTxt,telTxt;
int mYear,mMonth,mDay,mHour,mMinute;
private Button saveBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_appointment);
Firebase.setAndroidContext(this);
nameTxt = (EditText) findViewById(R.id.nameText);
addressTxt= (EditText) findViewById(R.id.addressText);
telTxt = (EditText) findViewById(R.id.telText);
dateApp = (EditText)findViewById(R.id.dateAppointment);
timeApp = (EditText)findViewById(R.id.timeAppointment);
dateApp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
datePic();
}
});
timeApp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
timePic();
}
});
saveBtn = (Button)findViewById(R.id.saveBtn);
saveBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
firebaseAuth = FirebaseAuth.getInstance();
mCurrentUser = firebaseAuth.getCurrentUser();
DatabaseReference db= FirebaseDatabase.getInstance().getReference().child("Email").child(mCurrentUser.getUid()).child("Appointment").push();
String name = nameTxt.getText().toString().trim();
String address = addressTxt.getText().toString().trim();
String tel = telTxt.getText().toString().trim();
String date = dateApp.getText().toString().trim();
String time = timeApp.getText().toString().trim();
//Adding values
db.child("name").setValue(name);
db.child("address").setValue(address);
db.child("tel").setValue(tel);
db.child("date").setValue(date);
db.child("time").setValue(time);
//Storing values to firebase
Toast.makeText(AddAppointment.this,"Saved",Toast.LENGTH_SHORT).show();
Intent mainIntent = new Intent(AddAppointment.this,MainActivity.class);
startActivity(mainIntent);
}
});
}
public void datePic()
{
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePickerDialog = new DatePickerDialog(this,new DatePickerDialog.OnDateSetListener(){
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth){
mYear = year;
mMonth = monthOfYear+1;
mDay = dayOfMonth;
dateApp.setText((mDay+"-"+mMonth+"-"+mYear));
}
},mDay,mMonth,mYear);
datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
datePickerDialog.show();
}
public void timePic()
{
final Calendar c = Calendar.getInstance();
mHour = c.get(Calendar.HOUR_OF_DAY);
mMinute = c.get(Calendar.MINUTE);
TimePickerDialog timePickerDialog = new TimePickerDialog(this,new TimePickerDialog.OnTimeSetListener(){
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute){
int hour = hourOfDay % 12;
timeApp.setText(String.format("%02d:%02d %s", hour == 0 ? 12 : hour,
minute, hourOfDay < 12 ? "a.m." : "p.m."));
}
},mHour,mMinute,false);
timePickerDialog.show();
}
}
AppointmentData.java -> this is my data setup
public class AppointmentData {
private String name,tel,address,time,date;
public AppointmentData() {
}
public void setName(String name) {
this.name = name;
}
public void setTel(String tel) {
this.tel = tel;
}
public void setAddress(String address) {
this.address = address;
}
public void setTime(String time) {
this.time = time;
}
public void setDate(String date) {
this.date = date;
}
public AppointmentData(String name, String tel, String address, String time, String date) {
this.name=name;
this.tel=tel;
this.address=address;
this.time=time;
this.date=date;
}
public String getName() {
return name;
}
public String getTel() {
return tel;
}
public String getAddress() {
return address;
}
public String getDate() {
return date;
}
public String getTime() {
return time;
}
}
ViewAppointment.java -> this is how i display my recyclerview
public class ViewAppointment extends AppCompatActivity {
private FirebaseAuth firebaseAuth;
private FirebaseUser mCurrentUser;
private DatabaseReference db;
private RecyclerView recyclerView;
private FirebaseRecyclerAdapter<AppointmentData,myViewHolder> mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_appointment);
recyclerView=(RecyclerView)findViewById(R.id.recycle);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
firebaseAuth = FirebaseAuth.getInstance();
mCurrentUser = firebaseAuth.getCurrentUser();
db= FirebaseDatabase.getInstance().getReference().child("Email").child(mCurrentUser.getUid()).child("Appointment");
db.keepSynced(true);
mAdapter= new FirebaseRecyclerAdapter<AppointmentData, myViewHolder>(
AppointmentData.class,R.layout.model,myViewHolder.class,db
) {
@Override
protected void populateViewHolder(final myViewHolder viewHolder, final AppointmentData model, final int position) {
viewHolder.nameTxt.setText(model.getName());
viewHolder.dateApp.setText(model.getDate());
viewHolder.timeApp.setText(model.getTime());
viewHolder.mapBtn.setText("Map");
viewHolder.detailBtn.setText("Detail");
viewHolder.deleteBtn.setText("Delete");
viewHolder.editBtn.setText("Edit");
Log.e("myFirebase UID", mAdapter.getRef(position).getKey());
viewHolder.editBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent (view.getContext(), UpdateAppointment.class);
i.putExtra("NAME_KEY",model.getName());
i.putExtra("ADDRESS_KEY",model.getAddress());
i.putExtra("TEL_KEY",model.getTel());
i.putExtra("DATE_KEY",model.getDate());
i.putExtra("TIME_KEY",model.getTime());
view.getContext().startActivity(i);
Log.e("Item Click position",""+position);
mAdapter.getRef(+position).removeValue();
}
});
viewHolder.detailBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent (view.getContext(), DetailActivity.class);
i.putExtra("NAME_KEY",model.getName());
i.putExtra("ADDRESS_KEY",model.getAddress());
i.putExtra("TEL_KEY",model.getTel());
i.putExtra("DATE_KEY",model.getDate());
i.putExtra("TIME_KEY",model.getTime());
view.getContext().startActivity(i);
}
});
viewHolder.mapBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent (view.getContext(), Distance.class);
i.putExtra("ADDRESS_KEY",model.getAddress());
view.getContext().startActivity(i);
}
});
viewHolder.deleteBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.e("Item Click position",""+position);
mAdapter.getRef(+position).removeValue();
}
});
}
};
recyclerView.setAdapter(mAdapter);
}
public static class myViewHolder extends RecyclerView.ViewHolder{
private TextView nameTxt,dateApp,timeApp;
private Button detailBtn,mapBtn,deleteBtn,editBtn;
public myViewHolder(View itemView){
super(itemView);
nameTxt=(TextView)itemView.findViewById(R.id.nameTxt);
dateApp= (TextView) itemView.findViewById(R.id.dateAppointment);
timeApp=(TextView)itemView.findViewById(R.id.timeAppointment);
mapBtn = (Button) itemView.findViewById(R.id.mapBtn);
detailBtn = (Button) itemView.findViewById(R.id.detailBtn);
deleteBtn = (Button) itemView.findViewById(R.id.deleteBtn);
editBtn = (Button) itemView.findViewById(R.id.editBtn);
}
}
}
最佳答案
Change 对您的 AppointmentData 进行以下更改
public class AppointmentData {
// ...
private Object date;
// ...
public void setDate(Object date) {
this.date = date;
}
// ...
public AppointmentData(String name, String tel, String address, String time, Object date) {
// ...
}
// ...
public Object getDate() {
return date;
}
}
将数据库更改为:
Query db = FirebaseDatabase.getInstance().getReference().child("Email").child(mCurrentUser.getUid()).child("Appointment").orderByChild("date");
将 populateViewHolder 中的这一行更改为:viewHolder.dateApp.setText(timestampToDateString(model.getDate()));
其中 timestampToDateString 是一个实用方法:
public static String timestampToDateString(long timestamp){
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
Date date = new Date(timestamp);
return dateFormat.format(date);
}
将 btnSave.onClickListener 改成这个
final String key = FirebaseDatabase.getInstance().getReference().child("Email").child(mCurrentUser.getUid()).child("Appointment").push().getKey();
// ...
Long date = mSelectedDate;
// ...
AppointmentData appointmentData = new AppointmentData(name, tel, address, time, date);
FirebaseDatabase.getInstance().getReference().child("Email").child(mCurrentUser.getUid()).child("Appointment").child(key).setValue(appointmentData);
// ...
像这样添加字段
private long mSelectedDate;
像这样在 datePic() 中初始化它
// ...
mYear = c.get(Calendar.YEAR);
// ...
mSelectedDate = fieldToTimestamp(mYear, mMonth, mDay);
并在 onDateSelectedListener.onDateSet(...) 中像这样
// ...
mSelectedDate = fieldToTimestamp(year, monthOfYear, dayOfMonth);
其中 fieldToTimestamp 是辅助方法
private long fieldToTimestamp(int year, int month, int day) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month);
calendar.set(Calendar.DAY_OF_MONTH, day);
return (long) (calendar.getTimeInMillis() / 1000L);
}
我想就这些了..哦,删除你所有的旧约会,这样就不会导致异常。
关于android - 如何根据日期和时间对我的 RecyclerView 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41716185/
我的数据库中有两张表,一张用于 field ,另一张用于预订。我需要的是一个查询来选择所有未预订的 field 。见下文: 餐 table 预订具有以下字段: bk_id venue_id 作为(预订
嗨,我是编码新手,我有一些培训项目,其中包括从 HTML 表单输入 MySQL 数据库。它就像你玩过的游戏的日志。第一个日期输入是您开始游戏的时间,第二个日期输入是您完成游戏的时间。但我需要检查器或类
我是这个 sql 编码的新手,我正在尝试学习新的东西。因此,我创建了一个交货表,其中包含一些属性,如商品代码、交货日期、交货数量。所以如何从同一张表中获取第一个交货日期(最小日期)和交货数量以及最晚交
我从支付网关返回了这个日期 2014-05-15T08:40:52+01:00 我得到 2014-05-15T08:40:52 但我无法识别时区 +01:00 的含义 我的位置时区是 UTC−06:0
我快要疯了,请帮忙。 我有一列包含日期时间值。 我需要找到每天的最小值和最大值。 数据看起来像这样 2012-11-23 05:49:26.000 2012-11-23 07:55:43.000
我从 json 数据中获取日期为 2015 年 4 月 15 日晚上 10:15我只想在 html 页面中显示 json 响应数据的时间,例如 10:15 PM这里我放了我的js函数和html代码 J
是否有 javascript 库或其他机制允许我将 .NET 日期/时间格式字符串(即 yyyy-MM-dd HH:mm:ss)传递给 javascript函数并让它相应地解析提供的日期时间值?我一直
我正在使用以下代码以正确的格式获取当前的 UTC 时间,但客户返回并要求时间戳现在使用 EST 而不是 UTC。我搜索了 Google 和 stackoverflow,但找不到适用于我现有代码的答案。
我有以下日期的平均温度数据。我想找到连续至少 5 天低于或高于 0 摄氏度的开始日期。 date_short mean.temp 1 2018-05-18 17.54 2 2018-05-19
它可以在其他网络浏览器中使用,但 IE11 返回无效日期。 为了调试我使用了下面的代码。 console.log('before - ' + date.value); date.value = new
我在 Excel 中有一个数据的 Web 提取,其中日期列带有/Date(1388624400000)/。我需要在 Excel 中将其转换为日期。 最佳答案 能够从 here 中推断出它. 假设字符串
嗨,我的 Schmema 有一个带有 ISO 日期的字段: ISODate("2015-04-30T14:47:46.501Z") Paypal 在成功付款后以该形式返回日期对象: Time/Date
我的 table : CREATE TABLE `tbdata` ( `ID` INT(10) NOT NULL AUTO_INCREMENT, `PatientID` INT(10) NOT
我正在 Ubuntu 服务器 12.04 中编写一个 shell 脚本,它应该比较日志文件中的一些数据。在日志文件中,日期以以下格式给出: [Mon Apr 08 15:02:54 2013] 如您所
我想使用 GROUP BY WITH ROLLUP 创建一个表并获取总行数而不是 null。 $sql ="SELECT IF(YEAR(transaktioner.datum
我正在创建博客文章,在成功迁移我的博客文件后,当我转到我网站的博客页面时返回一个错误(无法解析其余部分:':“Ymd”'来自'post.date|date: "Ymd"') 我似乎无法确定这是语法错误
我正在尝试获取要插入到 CAML 查询中的月份范围,即:2010-09-01 和 2010-09-30。 我使用以下代码生成这两个值: var month = "10/2010"; var month
如何将代码document.write("直到指定日期")更改为writeMessage(date)中的日期?此外,writeMessage(date) 中的日期未正确显示(仅显示年份)。感谢您帮助解
我在 Windows (XP) 和 Linux 上都尝试过 utime()。在 Windows 上我得到一个 EACCES 错误,在 Linux 上我没有得到任何错误(但时间没有改变)。我的 utim
我正在尝试计算发生在同一日期的值的总和(在 XYZmin 中)。 我的数据看起来像这样, bar <- structure(list(date = structure(c(15622, 15622,
我是一名优秀的程序员,十分优秀!