如何在每次单击字符串时更新当前时间和日期

时间:2018-04-16 04:42:40

标签: java android firebase time

我尝试使用当前日期和时间填充firebase中的子元素 来自以下代码

   SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String millisInString  = dateFormat.format(new Date());

    btn_send_msg.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Map<String,Object> map = new HashMap<String, Object>();
            temp_key = root.push().getKey();
            root.updateChildren(map);

            DatabaseReference message_root = root.child(temp_key);
            Map<String,Object> map2 = new HashMap<String, Object>();
            map2.put("name",user_name);
            map2.put("msg",input_msg.getText().toString()+millisInString);


            message_root.updateChildren(map2);
        }
    });

但我的问题是,它可以返回并保存单次

例如,如果我点击那么它将保存

2018-04-16 10:17:54

如果我点击它会再次保存

2018-04-16 10:17:54

但如果我重新启动我的应用程序,现在如果我点击它将保存新的更新时间,

2018-04-16 10:18:54

同时再次,除非我再次重启我的应用程序。

请帮忙

1 个答案:

答案 0 :(得分:2)

您需要在onClick()

btn_send_msg方法中获取当前时间和日期

试试这个

btn_send_msg.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String millisInString  = dateFormat.format(new Date());

        Map<String,Object> map = new HashMap<String, Object>();
        temp_key = root.push().getKey();
        root.updateChildren(map);

        DatabaseReference message_root = root.child(temp_key);
        Map<String,Object> map2 = new HashMap<String, Object>();
        map2.put("name",user_name);
        map2.put("msg",input_msg.getText().toString()+millisInString);


        message_root.updateChildren(map2);
    }
});