【问题标题】:Display current date in action bar in Android在 Android 的操作栏中显示当前日期
【发布时间】:2016-09-27 01:24:52
【问题描述】:

我想为我的项目制作一个日历应用程序,我想显示当前日期,标题为“月”,副标题为“日和年”。

我已经扩展了操作栏高度并隐藏了操作栏标题,但是如何将当前日期添加到操作栏的起点?

【问题讨论】:

    标签: android android-layout android-fragments


    【解决方案1】:

    在布局文件夹中创建名为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);  
    

    【讨论】:

      【解决方案2】:

      将TextView添加到ActionBar:

      Dynamic TextView on 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("/");
      

      【讨论】:

        【解决方案3】:

        手动添加一个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

        【讨论】:

        • 您可以使用 TextClock 代替 TextView 与此代码来显示当前时间。
        【解决方案4】:

        获取当前日期

        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);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-05-09
          • 2022-11-22
          • 2020-09-18
          • 1970-01-01
          • 1970-01-01
          • 2014-01-28
          • 1970-01-01
          相关资源
          最近更新 更多