【发布时间】:2016-09-27 01:24:52
【问题描述】:
我想为我的项目制作一个日历应用程序,我想显示当前日期,标题为“月”,副标题为“日和年”。
我已经扩展了操作栏高度并隐藏了操作栏标题,但是如何将当前日期添加到操作栏的起点?
【问题讨论】:
标签: android android-layout android-fragments
我想为我的项目制作一个日历应用程序,我想显示当前日期,标题为“月”,副标题为“日和年”。
我已经扩展了操作栏高度并隐藏了操作栏标题,但是如何将当前日期添加到操作栏的起点?
【问题讨论】:
标签: android android-layout android-fragments
在布局文件夹中创建名为clock.xml的文件,内容如下;
<TextClock xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/textClock"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:format24Hour="dd/MM/yyyy HH:mm:ss"
android:gravity="center_horizontal"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="@color/colorWhite"
android:textSize="50sp"
android:textStyle="bold"
android:visibility="visible"
tools:visibility="visible"/>
在Activity的onCreate中添加如下内容;
Objects.requireNonNull(getSupportActionBar()).setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.clock);
【讨论】:
将TextView添加到ActionBar:
dd/MM/yyyy 格式的今天日期:
Calendar c = Calendar.getInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
String date = dateFormat.format(c.getDate());
//if you want dd/MM/yyyy as separate units
String[] separatedDate = date.split("/");
【讨论】:
手动添加一个TextView到Action Bar:
TextView tv = new TextView(this);
tv.setText(<Replace with DateTime Related Variable here>);
tv.setTextColor(getResources().getColor(R.color.WHITE));
tv.setOnClickListener(this);
tv.setPadding(5, 0, 5, 0);
tv.setTypeface(null, Typeface.BOLD);
tv.setTextSize(14);
menu.add(0, FILTER_ID, 1, R.string.matchmacking).setActionView(tv).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
你可以走了。
本文改编自Yashdeep Patel
【讨论】:
获取当前日期
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT"),Locale.getDefault());
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String currentDate = df.format(c.getTime());
并且,您可以设置工具栏标题或操作栏标题
toolbar.setTitle(currentDate);
或
getActionBar().setTitle(currentDate);
【讨论】: