CalandarView получить выбранную пользователем дату - PullRequest
0 голосов
/ 04 декабря 2018

[введите описание изображения здесь] [1] [введите описание изображения здесь] [2] Привет, ребята, мне нужна помощь. Я работаю над базовым приложением Calander и у меня возникают проблемы с получением даты.Когда я сохраняю дату, она сохраняет текущую дату, а не выбранную пользователем дату.Итак, мой вопрос: как правильно получить дату из 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

https://i.stack.imgur.com/4MWI5.png

1 Ответ

0 голосов
/ 04 декабря 2018

Если вы используете 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...