我MaterialDatePicker
在 android studio 中使用,以便用户能够选择出生日期,选择日期后,返回的值是带有long
所选日期的时间戳(自 1970 年 1 月 1 日以来的毫秒数)。问题是得到的结果稍有错误,例如:如果用户选择日期10/05/1998(1998年10月1日),则返回的日期是在此之前的一天,即日历返回10/04 / 1998 年(1998 年 10 月 4 日)。
我的代码:
Calendar calendar = Calendar.getInstance();
MaterialDatePicker.Builder<Long> builder =
MaterialDatePicker.Builder.datePicker();
MaterialDatePicker<Long> picker = builder.build();
picker.show(getChildFragmentManager(), picker.toString());
picker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener<Long>() {
@Override
public void onPositiveButtonClick(Long selection) {
calendar.setTimeInMillis(selection);
SimpleDateFormat simpleDateFormat = new
SimpleDateFormat("dd/MM//yyyy",Locale.getDefault());
txtBirthDate.setText(simpleDateFormat.format(calendar.getTime()));
}
});
Run Code Online (Sandbox Code Playgroud)
现在 timeInMillis 的实例calendar
具有选定的日期,仅在一天之前。我怎样才能解决这个问题?
我在 Android 上使用最新版本的导航和撰写,但遇到一个错误,无法弹出导航的起始目的地。问题是,如果我有 3 个目的地(A、B、C)并从 A-> B -> C,我无法从后退堆栈中弹出 A,但当我调用时会弹出 B,导致后退popUpTo(B)
inclusive = true
按钮回到A。
我的代码:
导航主机
setContent {
val navController = rememberNavController()
NavHost(
navController = navController,
startDestination = "route_to_a"
) {
composable("route_to_a") {
LoginScreen(navController)
}
composable("route_to_b") {
RegisterScreen(navController)
}
composable("route_to_c") {
HomeScreen(navController = navController)
}
}
}
Run Code Online (Sandbox Code Playgroud)
导航
- A 到 B
Button(onClick = { navController.navigate("route_to_b")}) {}
Run Code Online (Sandbox Code Playgroud)
- B 到 C
Button(onClick = {
navController.navigate("route_to_c") {
popUpTo("route_to_b") {
inclusive = true
}
}
}) {}
Run Code Online (Sandbox Code Playgroud)
我想创建一个流程,其中 A 和 …
android android-layout android-jetpack-navigation android-jetpack-compose jetpack-compose-navigation
android ×2