以编程方式在小部件中设置 TextClock 的日期格式

     2023-04-15     83

关键词:

【中文标题】以编程方式在小部件中设置 TextClock 的日期格式【英文标题】:Set Date Format Of TextClock In A Widget Programatically 【发布时间】:2013-08-26 19:05:33 【问题描述】:

我必须设置一个TextClock 以在另一个TextClock 中显示时间和日期。我希望能够让用户更改日期的格式。例如。而不是他们想要的dd MMMM yyyyMMMM dd yyyy,它将显示 2013 年 1 月 1 日。

我已经设置了一个微调器和数组以在配置活动中选择它,但想知道如何将 TextClock 格式更改为我提到的。我试过views.set....但一无所获。

肯定有办法像我在 xml 文件中那样更改格式

android:format12Hour="dd MMMM yyyy"
android:format24Hour="dd MMMM yyyy"

在java文件中..

【问题讨论】:

我提供的答案完美,请标记为正确答案 【参考方案1】:

这就是你需要做的:

remoteView.setCharSequence(R.id.widget_current_date, "setFormat12Hour", datePattern);

【讨论】:

我试过你上面的代码仍然不能工作 textclock 仅显示 24 小时格式。 如何将 datepattern 赋予 charseq,例如“dd MMM yyyy hh:mm a”【参考方案2】:

更新:2018 年 1 月 31 日: 有一种更简单的方法是通过调用 setCharSequence 来设置 24 小时形式,此 *** 问题已接受答案中所示: Can't call setFormat24Hour of a TextClock in a Widget

旧的替代答案: 由于小部件视图是通过 RemoteViews android 类以编程方式访问的,并且该类不公开 set24hourformat 方法,因此您必须通过创建两个 XML 布局(一个用于您想要切换的每种格式)来解决这个问题,然后设置使用 RemoteViews 构造函数的 XML 布局。

有点麻烦,但只能使用当前的 SDK API。

这是一个您可以放入 onUpdate() 的示例:

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
    RemoteViews views = null;
    int layoutID = 0;
    if (TwentyFourHourOn)
        layoutID = R.layout.widget_clock_with_24hour;
     else 
        layoutID = R.layout.widget_clock_with_12hour;
    

    // the layoutID that is passed in the constructor of the
    //   RemoteViews object is the layout that will be loaded
    //   when the widget is updated.
    views = new RemoteViews(context.getPackageName(), layoutID);

    for (int i = 0; i < appWidgetIds.length; i++) 
        appWidgetManager.updateAppWidget(appWidgetIds[i], views);
    

【讨论】:

为什么说“类不公开 set24hourformat 方法”?它确实 @2cupoftech TextClock 公开了 set24hourformat() 方法。但 RemoteView 没有。在 android 小部件中,您必须通过 RemoteView 在下面查看我的答案【参考方案3】:

是的,TextClock 实例有一个 setFormat12Hour(CharSequence) 方法和 24Hour。 字符序列就像你提到的那样。

【讨论】:

是的,我可以在常规 Activity 上使用它,但是在小部件中是否有替代方案? 这不起作用,因为必须使用 RemoteView。因此,我们需要一个 RemoteView 方法来实现这一点。我也有同样的问题。

如何以编程方式连接到已在 Android 手机中设置的 ***

】如何以编程方式连接到已在Android手机中设置的***【英文标题】:Howtoconnecttoa***,whichisalreadysetupinanAndroidphone,programmatically【发布时间】:2012-05-0300:41:33【问题描述】:我已在我的Android手机中配置了***连接。现在我想通过一个小... 查看详情

在小部件中设置 Firebase 崩溃用户标识符的最佳方法是啥?

】在小部件中设置Firebase崩溃用户标识符的最佳方法是啥?【英文标题】:WhatisthebestwaytosetaFirebaseCrashuseridentifierinawidget?在小部件中设置Firebase崩溃用户标识符的最佳方法是什么?【发布时间】:2016-06-2118:19:54【问题描述】:我一... 查看详情

Angular UI select2 指令 - 以编程方式更新模型未反映在小部件上

】AngularUIselect2指令-以编程方式更新模型未反映在小部件上【英文标题】:AngularUIselect2directive-updatingthemodelprogrammaticallynotreflectedonthewidget【发布时间】:2013-03-2412:21:04【问题描述】:我正在尝试以编程方式更新select2模型并刷新视... 查看详情

以编程方式在 ViewController 中设置 tableView

】以编程方式在ViewController中设置tableView【英文标题】:SettableViewinaViewControllerprogrammatically【发布时间】:2018-09-1819:42:24【问题描述】:我正在尝试在viewController中以编程方式设置tableView(在我使用TableViewController之前,所以我有... 查看详情

以编程方式在 View Controller 中设置 UITableView

】以编程方式在ViewController中设置UITableView【英文标题】:SettingupaUITableViewinsideViewControllerProgramatically【发布时间】:2013-02-1817:47:30【问题描述】:我在视图控制器中设置了一个UITableView控制器,如下所示:fieldView=[[UITableViewalloc]in... 查看详情

以编程方式在“dp”中设置 ImageView 位置?

】以编程方式在“dp”中设置ImageView位置?【英文标题】:ProgrammaticallysetImageViewpositionin"dp"?【发布时间】:2012-09-0307:40:52【问题描述】:我读过:HowtosetmarginofImageViewusingcode,notxml以及使用注释“您可以使用context.getResources(... 查看详情

以编程方式在 API 级别 7 中设置视图位置

】以编程方式在API级别7中设置视图位置【英文标题】:SettingPositionofViewinAPILevel7Programmatically【发布时间】:2012-08-0919:10:31【问题描述】:目前我正在尝试使用以下代码设置我以编程方式创建的视图的位置:LayoutParamsparams=bottomBar.... 查看详情

以编程方式在 TextView 中设置文本对齐方式

】以编程方式在TextView中设置文本对齐方式【英文标题】:ProgrammaticallysettextalignmentinaTextView【发布时间】:2018-08-1204:38:44【问题描述】:在我的应用程序中,我有一个按钮,可以创建带有特定消息的TextView。如何将文本的文本对... 查看详情

如何以编程方式在 dp 中设置 EditText 上边距?

】如何以编程方式在dp中设置EditText上边距?【英文标题】:howtosetEditTextTopMarginsindpprogramatically?【发布时间】:2014-01-1217:43:44【问题描述】:在我的android应用程序中,我想更改editText的topMargin。问题是我想改变它“dp”明智而不... 查看详情

以编程方式在 UINavigationController 中设置 UINavigationBar 的自定义子类

】以编程方式在UINavigationController中设置UINavigationBar的自定义子类【英文标题】:SetacustomsubclassofUINavigationBarinUINavigationControllerprogrammatically【发布时间】:2010-12-2413:39:56【问题描述】:如果我以编程方式(没有IB)实例化UINavigation... 查看详情

如何以编程方式检查设备是不是在 iOS 中设置振动模式?

】如何以编程方式检查设备是不是在iOS中设置振动模式?【英文标题】:HowtocheckwhetherdevicesetvibrationmodeornotiniOSprogramatically?如何以编程方式检查设备是否在iOS中设置振动模式?【发布时间】:2016-04-2007:28:28【问题描述】:我正在... 查看详情

以编程方式在 Magento 中设置订阅者状态

】以编程方式在Magento中设置订阅者状态【英文标题】:SetsubscriberstatusinMagentoprogrammatically【发布时间】:2011-07-0401:47:28【问题描述】:我正在尝试编写一个模块,将我在Magento中的时事通讯订阅者与外部数据库同步。我需要能够... 查看详情

以编程方式在 iOS 设置中设置全局 Http 代理的可能方法是啥?

】以编程方式在iOS设置中设置全局Http代理的可能方法是啥?【英文标题】:WhatarethepossiblewaytosetGlobalHttpProxyiniOSsettingprogrammatically?以编程方式在iOS设置中设置全局Http代理的可能方法是什么?【发布时间】:2018-09-1911:31:17【问题描... 查看详情

通过 iChatAgent 以编程方式在 iChat 中设置状态

】通过iChatAgent以编程方式在iChat中设置状态【英文标题】:SetstatusiniChatbyiChatAgentprogrammatically【发布时间】:2012-03-0215:56:53【问题描述】:我的应用程序使用AppleScript根据用户的热键更改iChat中的状态。一切正常,但在iChat没有运... 查看详情

以编程方式在 TextView 中设置左可绘制对象

】以编程方式在TextView中设置左可绘制对象【英文标题】:ProgrammaticallysetleftdrawableinaTextView【发布时间】:2011-10-1909:38:18【问题描述】:我在这里有一个xml格式的textView。<TextViewandroid:id="@+id/bookTitle"android:layout_android:layout_android:... 查看详情

Android:以编程方式在 FrameLayout 中设置边距 - 不起作用

】Android:以编程方式在FrameLayout中设置边距-不起作用【英文标题】:Android:SetmarginsinaFrameLayoutprogrammatically-notworking【发布时间】:2011-12-2710:37:01【问题描述】:这是代码-FrameLayout.LayoutParamsparams=(FrameLayout.LayoutParams)searchPin.getLayoutP... 查看详情

如何以编程方式在 Ionic 的 variables.scss 中设置变量?

】如何以编程方式在Ionic的variables.scss中设置变量?【英文标题】:HowtoprogrammaticallysetvariablesinIonic\'svariables.scss?【发布时间】:2017-12-1920:16:36【问题描述】:Ionic带有一个variables.scss文件,您可以在其中设置不同的样式变量,例如... 查看详情

如何以编程方式在顶部和底部的垂直线性布局中设置一个视图?

】如何以编程方式在顶部和底部的垂直线性布局中设置一个视图?【英文标题】:Howtosetoneviewinverticallinearlayoutintopandanotherinbottomprogrammatically?【发布时间】:2018-12-1101:42:30【问题描述】:我正在尝试以编程方式创建父LinearLayout和3... 查看详情