java - CalandarView 获取用户选择的日期
问题描述
[在此处输入图像描述][1][在此处输入图像描述][2]大家好,我需要一些帮助我正在开发一个基本的日历应用程序,但在检索日期时遇到了一些问题。当我保存日期时,它会保存当前日期,而不是用户选择的日期。所以我的问题是:在用户更改日期后,从 CalandarView 检索日期的正确方法是什么?calandarView 在别处初始化为当前日期。我只需要以简单的日期格式获取日期月份和年份。
CalendarView cView = (CalendarView) findViewById(R.id.calendarView);
final EditText myText = (EditText)
final Calendar myCal = Calendar.getInstance();//initialize to current date
myCal.setTimeInMillis(cView.getDate());//get current set date from the calandarview
解决方案
如果您使用的是 CalendarView,请在您的活动中创建以下变量:
int day;
int month;
int year;
然后您可以使用以下侦听器:
cView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView calendarView, int year, int month, int day) {
yourActivity.this.day = day;
yourActivity.this.month = month;
yourActivity.this.year = year;
}
});
然后以任何你想要的方式使用变量
编辑(在您发表评论后): 运行以下示例以查看其工作原理
soActivity.java:
public class soActivity extends AppCompatActivity {
private CalendarView cView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_so);
cView = findViewById(R.id.calendarView);
cView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(@NonNull CalendarView view, int year, int month, int dayOfMonth) {
Toast.makeText(soActivity.this, "date: "+dayOfMonth, Toast.LENGTH_LONG).show();
}
});
}
}
和 R.layout.activity_so.xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".soActivity">
<CalendarView
android:id="@+id/calendarView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</android.support.constraint.ConstraintLayout>
推荐阅读
- python - 在python中进行匹配时如何忽略空值?
- typescript - 在 NestJs 中创建基于 Redis 的微服务时出错
- azure-data-factory - 在特定日期触发 Azure 数据工厂,避免周末
- regex - VS Code 自定义问题匹配器不起作用
- api - 使用 python 从 Wikidata API 获取更多信息
- python - Discord dm bot 可以通过 python dm 返回
- android - Gradle,不同的“平台(”)与否?
- java - org.springframework.web.reactive.function.UnsupportedMediaTypeException:bodyType= 不支持内容类型'text/html;charset=iso-8859-1'
- r - Emacs:运行 R shell
- ruby-on-rails - 结合 Rails 搜索模式 'matches' 和 'LIKE'