Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 时间选择器以毫秒为单位获取错误的毫秒值_Android_Firebase_Timer_Firebase Realtime Database - Fatal编程技术网

Android 时间选择器以毫秒为单位获取错误的毫秒值

Android 时间选择器以毫秒为单位获取错误的毫秒值,android,firebase,timer,firebase-realtime-database,Android,Firebase,Timer,Firebase Realtime Database,我使用时间选择器在firebase中存储时间 但是时间选择器在毫秒内选择了错误的值。 如果我存储时间为03:02 pm,它将存储06:49:00。 如何使用时间选择器获得精确的毫秒 public class EditTimeTable extends BaseActivity { private EditText editTextaddress; private TextView textviewday; String day; //private Spinner spinnerDay; pr

我使用时间选择器在firebase中存储时间 但是时间选择器在毫秒内选择了错误的值。 如果我存储时间为03:02 pm,它将存储06:49:00。 如何使用时间选择器获得精确的毫秒

public class EditTimeTable extends BaseActivity {

private EditText editTextaddress;
private TextView textviewday;
String day;
//private Spinner spinnerDay;
private Spinner spinnerSlot;
private Button buttonsave;
private TimePicker timePicker;
private static final String REQUIRED = "Required";
private static final String TAG = "time table activity";
//a list to store all the dr time data from firebase database
List<drtime> drtimes;

//our database reference object
private DatabaseReference databasedrtime;
//firebase auth object
private FirebaseAuth firebaseAuth;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_edit_time_table);


    Bundle bundle = getIntent().getExtras();
     day = bundle.getString("key", "");
    TextView TextViewday = (TextView) findViewById(R.id.post_day);
    TextViewday.setText(day);


    //getting the reference of drtime node
    databasedrtime = FirebaseDatabase.getInstance().getReference();
    //getting views

    editTextaddress = (EditText) findViewById(R.id.post_body);
    textviewday = (TextView) findViewById(R.id.post_day);
    //spinnerDay = (Spinner) findViewById(R.id.spinner2);
    spinnerSlot = (Spinner) findViewById(R.id.spinner);
    timePicker = (TimePicker) findViewById(R.id.timePicker);

    // listViewArtists = (ListView) findViewById(R.id.listViewArtists);

    buttonsave = (Button) findViewById(R.id.button4);


    //adding an onclicklistener to button
    buttonsave.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {


            if (day.contentEquals("Monday") ) {
                adddrtime0();

        }
    });
}

private void adddrtime0() {
    //getting the values to save
    final String address = editTextaddress.getText().toString();
    final String day = textviewday.getText().toString();
    //final String day = spinnerDay.getSelectedItem().toString();
    final String slot = spinnerSlot.getSelectedItem().toString();
    final long time = timePicker.getDrawingTime();

    // address is required
    if (TextUtils.isEmpty(address)) {
        editTextaddress.setError(REQUIRED);
        return;
    }
    final String userId = getUid();
    databasedrtime.child("users").child(userId).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            UserTime userTime = dataSnapshot.getValue(UserTime.class);
            if (userTime == null) {
                // User is null, error out
                Log.e(TAG, "User " + userId + " is unexpectedly null");
                Toast.makeText(EditTimeTable.this,
                        "Error: could not fetch user.",
                        Toast.LENGTH_SHORT).show();

            } else {
                // Write new post
                writetimetable(userId, userTime.username, address, day, slot, time);

                finish();
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            Log.w(TAG, "getUser:onCancelled", databaseError.toException());
        }
    });


}


private void writetimetable(String userId, String username, String address, String day, String slot, long time) {
    // Create new post at /user-posts/$userid/$postid and at
    // /posts/$postid simultaneously
    String key = databasedrtime.child("Monday").getKey();
    drPost dr = new drPost(userId, username, address, day, slot, time);
    Map<String, Object> postValues = dr.toMap();

    Map<String, Object> childUpdates = new HashMap<>();


    childUpdates.put("/user_time_table/" + userId + "/" + key, postValues);

    databasedrtime.updateChildren(childUpdates);
}
公共类编辑活动{
专用编辑文本编辑地址;
私有文本视图文本视图日;
弦日;
//私人纺纱厂纺纱厂日;
私人纺纱机;
私人按钮保存;
私人时间选择器;
私有静态最终字符串REQUIRED=“REQUIRED”;
私有静态最终字符串TAG=“时间表活动”;
//存储firebase数据库中所有灾难恢复时间数据的列表
列出时间;
//我们的数据库引用对象
私有数据库参考数据库时间;
//firebase身份验证对象
私有FirebaseAuth FirebaseAuth;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u edit\u time\u table);
Bundle Bundle=getIntent().getExtras();
day=bundle.getString(“key”,即“”);
TextView TextViewday=(TextView)findViewById(R.id.post_day);
TextViewday.setText(天);
//获取drtime节点的引用
databasedrtime=FirebaseDatabase.getInstance().getReference();
//获取视图
editTextaddress=(EditText)findViewById(R.id.post_body);
textviewday=(TextView)findViewById(R.id.post_day);
//喷丝头日=(喷丝头)findViewById(R.id.spinner2);
喷丝头槽=(喷丝头)findViewById(R.id.Spinner);
timePicker=(timePicker)findviewbyd(R.id.timePicker);
//listViewArtists=(ListView)findViewById(R.id.listViewArtists);
buttonsave=(按钮)findViewById(R.id.button4);
//向按钮添加onclicklistener
buttonsave.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
如果(日期等于(“星期一”)){
adddrtime0();
}
});
}
私有void adddrtime0(){
//获取要保存的值
最终字符串地址=editTextaddress.getText().toString();
最后一个字符串day=textviewday.getText().toString();
//最终字符串日期=spinnerDay.getSelectedItem().toString();
最终字符串槽=喷丝头槽。getSelectedItem().toString();
final long time=timePicker.getDrawingTime();
//地址是必需的
if(TextUtils.isEmpty(地址)){
editTextaddress.setError(必需);
返回;
}
最后一个字符串userId=getUid();
databasedrtime.child(“用户”).child(userId).addValueEventListener(新的ValueEventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
UserTime UserTime=dataSnapshot.getValue(UserTime.class);
if(userTime==null){
//用户为空,错误为0
Log.e(标记“User”+userId+”意外为空);
Toast.makeText(editTimeline.this,
“错误:无法获取用户。”,
吐司。长度(短)。show();
}否则{
//写新帖子
WriteMetable(userId、userTime.username、地址、日期、时隙、时间);
完成();
}
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
w(标记“getUser:onCancelled”,databaseError.toException());
}
});
}
私有void writeMetable(字符串用户ID、字符串用户名、字符串地址、字符串日期、字符串槽、长时间){
//在/user posts/$userid/$postd和
///posts/$posted
String key=databasedrtime.child(“星期一”).getKey();
drPost dr=新的drPost(用户ID、用户名、地址、日期、时段、时间);
Map postValues=dr.toMap();
Map childUpdates=newhashmap();
childUpdates.put(“/user\u time\u table/”+userId+“/”+key,postValues);
databasedrtime.updateChildren(childUpdates);
}

在adddrtime0()输入此代码

我正在获取我所选择的时间选择器值。

getDrawingTime()
不是您想要的。也许您应该咨询.ya,而不是我使用的(getDrawingTime)。我查看了文档,但没有得到它。
Calendar calendar = Calendar.getInstance();
    int year = calendar.get(Calendar.YEAR);
    int month = calendar.get(Calendar.MONTH);
    final int days = calendar.get(Calendar.DAY_OF_MONTH);
    int hour = 0;
    int minute = 0;

    int currentApiVersion = android.os.Build.VERSION.SDK_INT;
    if (currentApiVersion > android.os.Build.VERSION_CODES.LOLLIPOP_MR1){
        hour = timePicker.getHour();
        minute = timePicker.getMinute();
    } else {
        hour = timePicker.getCurrentHour();
        minute = timePicker.getCurrentMinute();
    }
    calendar.set(year, month, days, hour, minute);
    final long time = calendar.getTimeInMillis();