Как установить текущую дату в качестве заголовка в строке заголовка? - PullRequest
0 голосов
/ 23 сентября 2018

Я хочу установить текущую дату в качестве заголовка в строке заголовка и сделать ее отзывчивой. Если я нажму на заголовок (текущая дата), появится диалоговое окно с календарем для установки даты и в соответствии с выбранной датой.должны отображать данные.Я попытался добавить текстовое представление к строке заголовка.Но я не получил это

1 Ответ

0 голосов
/ 23 сентября 2018

Прежде всего установите панель инструментов в вашем макете xml

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="8dp"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

Затем в вашем классе Activity получите текущую дату и установите в качестве заголовка

String date = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date());

ToolBar mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar);            
setSupportActionBar(mActionBarToolbar);
getSupportActionBar().setTitle(date); //This is to set the current date as title

DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {

    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {
        // TODO Auto-generated method stub
        myCalendar.set(Calendar.YEAR, year);
        myCalendar.set(Calendar.MONTH, monthOfYear);
        myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
        updateLabel();
    }
};

mActionBarToolbar.findViewById(R.id.toolbar_title).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.d(TAG,"Clicked");
             new DatePickerDialog(classname.this, date, myCalendar
                .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                myCalendar.get(Calendar.DAY_OF_MONTH)).show();
        }
    });

Добавьте этот метод вактивность -

private void updateLabel() {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
    mActionBarToolbar.setText(sdf.format(myCalendar.getTime()));
}
...