小编Phi*_*hil的帖子

ChartJS v2.0的自定义图例

我正在尝试在ChartJS v2.0中创建自定义图例模板.在ChartJS的v1*中,我只是向新的Chart构造函数添加了一个属性,例如......

legendTemplate : '<ul>'
+'<% for (var i=0; i<datasets.length; i++) { %>'
+'<li>'
+'<span style=\"background-color:<%=datasets[i].lineColor%>\"></span>'
+'<% if (datasets[i].label) { %><%= datasets[i].label %><% } %>'
+'</li>'
+'<% } %>'
+'</ul>'
Run Code Online (Sandbox Code Playgroud)

我似乎无法在v2.0中找到此选项的任何文档.它甚至可用吗?任何人都可以展示如何实现这一目标的例子吗?

谢谢!

更新 - 下面的工作代码

legendCallback: function(chart) {
                console.log(chart.data);
                var text = [];
                text.push('<ul>');
                for (var i=0; i<chart.data.datasets[0].data.length; i++) {
                    text.push('<li>');
                    text.push('<span style="background-color:' + chart.data.datasets[0].backgroundColor[i] + '">' + chart.data.datasets[0].data[i] + '</span>');
                    if (chart.data.labels[i]) {
                        text.push(chart.data.labels[i]);
                    }
                    text.push('</li>');
                }
                text.push('</ul>');
                return text.join("");
            }
Run Code Online (Sandbox Code Playgroud)

javascript chart.js

28
推荐指数
3
解决办法
5万
查看次数

Android 23+ - 从备份中排除GCM注册ID

我有一个使用Azure发送推送通知的应用程序.Azure依次使用GCM发送到Android设备.

我注意到我的AndroidManifest.xml中有一个警告说明

在SDK版本23及更高版本中,您的应用数据将自动备份,并在应用安装时恢复.您的GCM注册表无法在恢复期间使用,因此您必须确保将其从备份集中排除.使用属性android:fullBackupContent指定一个@xml资源,该资源用于配置要备份的文件.

我按照https://developer.android.com/training/backup/autosyncapi.html?hl=in#configuring中的说明进行操作

但是我对如何从备份中排除GCM regID感到难过?这是我目前的设置.

表现

<application
        android:allowBackup="true"
        android:fullBackupContent="@xml/backup_scheme"
        ........
Run Code Online (Sandbox Code Playgroud)

RES/XML/backup_scheme.xml

<?xml version="1.0" encoding="utf-8"?>
<full-backup-content>
    <exclude domain="sharedpref" path=""/>
</full-backup-content>
Run Code Online (Sandbox Code Playgroud)

我把什么作为路径?我应该在某个地方放置一个物理文件吗?

UPDATE

所以我想我明白了.在我的RegistrationIntentService.java文件中,我将用户registrationID存储在字符串"registrationID"下的共享首选项中.所以我假设我使用以下内容......

<exclude domain="sharedpref" path="registrationID"/>
Run Code Online (Sandbox Code Playgroud)

对?

android google-cloud-messaging android-backup-service android-6.0-marshmallow

16
推荐指数
3
解决办法
2874
查看次数

Firebird 2.5 - SQL中STUFF的等效函数(Oracle中的MySql/LISTAGG中的GROUP_CONCAT)

有谁知道Firebird 2.5是否具有类似于SQL中"STUFF"功能的功能?我有一个包含父用户记录的表,另一个表包含与父进程相关的子用户记录.我希望能够在不必使用第二个查询的情况下拉出用户所拥有的"ROLES"的逗号分隔字符串,循环返回给定ID的值并自己创建字符串.

我搜索过任何其他相关问题,但没有找到任何问题.这个链接字符串相当于Sum连接的问题基本上也是我想做的,但是使用Firebird 2.5数据库.

sql database firebird

9
推荐指数
1
解决办法
3718
查看次数

Android gradle androidDependencies命令错误

所以,当我从Android Studio运行androidDependencies命令时,我得到以下LONG输出.所有错误是什么意思?它仍然成功构建,我应该对错误做些什么,如果是这样,我该如何清理它们?

androidDependencies输出

Information:Gradle tasks [androidDependencies]
:app:androidDependencies
debug
+--- LOCAL: notification-hubs-0.4.jar
+--- LOCAL: android-viewbadger.jar
+--- LOCAL: android-maps-extensions.jar
+--- com.google.android.gms:play-services:8.4.0
|    +--- com.google.android.gms:play-services-ads:8.4.0
Error:\--- com.google.android.gms:play-services-basement:8.4.0
Error:\--- com.android.support:support-v4:23.0.0
Error:\--- LOCAL: internal_impl-23.0.0.jar
|    +--- com.google.android.gms:play-services-analytics:8.4.0
Error:\--- com.google.android.gms:play-services-basement:8.4.0
Error:\--- com.android.support:support-v4:23.0.0
Error:\--- LOCAL: internal_impl-23.0.0.jar
|    +--- com.google.android.gms:play-services-appindexing:8.4.0
Error:\--- com.google.android.gms:play-services-base:8.4.0
Error:\--- com.google.android.gms:play-services-basement:8.4.0
Error:\--- com.android.support:support-v4:23.0.0
Error:\--- LOCAL: internal_impl-23.0.0.jar
|    +--- com.google.android.gms:play-services-appinvite:8.4.0
Error:\--- com.google.android.gms:play-services-base:8.4.0
Error:\--- com.google.android.gms:play-services-basement:8.4.0
Error:\--- com.android.support:support-v4:23.0.0
Error:\--- LOCAL: internal_impl-23.0.0.jar
|    +--- com.google.android.gms:play-services-appstate:8.4.0
Error:\--- com.google.android.gms:play-services-base:8.4.0
Error:\--- com.google.android.gms:play-services-basement:8.4.0
Error:\--- com.android.support:support-v4:23.0.0
Error:\--- LOCAL: internal_impl-23.0.0.jar
|    +--- com.google.android.gms:play-services-auth:8.4.0
Error:\--- com.google.android.gms:play-services-base:8.4.0 …
Run Code Online (Sandbox Code Playgroud)

android android-studio azure-notificationhub android-gradle-plugin gradle-dependencies

6
推荐指数
1
解决办法
903
查看次数

不允许使用Android XML元素

我有以下XML布局,基本上给我圆角,我在EditText上使用它.为什么Android检查员会说element solid is not allowed hereelement corners is not allowed here.

它工作正常,我应该离开吗?

<?xml version="1.0" encoding="utf-8"?>    
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle" android:padding="10dp"
       android:layout_width="match_parent"
       android:layout_height="match_parent">
    <solid android:color="#FFFFFF" />
    <corners
        android:bottomRightRadius="5dp"
        android:bottomLeftRadius="5dp"
        android:topLeftRadius="5dp"
        android:topRightRadius="5dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

android android-layout

6
推荐指数
1
解决办法
8924
查看次数

Android - Azure推送通知Google FCM

我已经跟随使用Azure通知中心向Android发送推送通知教程,使用Azure通知中心将推送通知实现到我的Android应用中.

以前,我使用另一个教程使用带有Azure Notification Hub的Google Cloud Messaging服务来执行此操作,但是当我从Android Studio将应用程序发送到设备时,我只能获得推送通知.当我构建一个已签名的APK并将其安装在我的设备上时,没有推送通知.

在昨天整天尝试使其工作(禁用ProGuard,尝试不同的API密钥等)后,我决定今天早上重新开始.就在那时,我意识到Google现在会在用户从云端控制台点击GCM时将用户引导至Firebase云消息传递.所以...我已经使用上面的教程和Google FCM将Push Notifications实现到我的应用程序中.

它工作得很好....但是,当我创建一个签名的APK并在我的设备上安装它而不是从Android Studio将应用程序发送到我的设备时,我没有得到推送通知.Azure显示推送已成功发送,但没有任何结果.

在我的推送处理程序中,我有一个登录控制台的日志,如下面的onReceive方法所示.当我从Android Studio运行应用程序时,这被称为正常,并且应该通过推送来实现.但是当我创建签名的apk并从中运行时,onReceive方法不会被调用,也没有推送.

@Override
    public void onReceive(Context context, Bundle bundle) {

        Log.d("TAG","TRIGGERED");

        ctx = context;
        String nhMessage = bundle.getString("message");
        String nhTitle = bundle.containsKey("title") ? bundle.getString("title") : "Title";
        String nhBadge = bundle.containsKey("badge") ? bundle.getString("badge") : null ;
        sendNotification(nhMessage,nhTitle,nhBadge);
        if (Main.isVisible) { Main.mainActivity.ToastNotify(nhMessage); }
    }
Run Code Online (Sandbox Code Playgroud)

有人请帮帮我.我错过了什么????? 是因为我正在直接安装APK吗?是否必须从Google Play下载?除此之外,我不知道它可能是什么.

UPDATE

根据Nikita G的建议,我按照说明使用cURL从命令行发送测试推送.
我得到的回复是以下(看起来像一个成功的消息)但是我的设备没有推送.

{"multicast_id":6722521883082447284,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1473693614087201%06fb35f0f9fd7ecd"}]}
Run Code Online (Sandbox Code Playgroud)

我的cURL请求看起来像这样,就像教程所示.

curl --header "Authorization: key=XXXXXXXXXXXX" --header "Content-Type: application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"fs...Tw:APA...SzXha\"]}"
Run Code Online (Sandbox Code Playgroud)

UPDATE …

android azure firebase azure-notificationhub firebase-cloud-messaging

6
推荐指数
1
解决办法
2553
查看次数

在URL.openStream()Android上设置超时

我在我的应用程序中使用以下内容连接到URL并解析生成的XML响应.我的麻烦是我无法找到一种方法来设置openStream()方法的超时,以便它只等待大约5秒,如果没有收到响应,则失败.它只是在等待和等待.有什么想法吗?

URL website = new URL(sb.toString());                         
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
DataHandler h = new DataHandler();
xr.setContentHandler(h);              
xr.parse(new InputSource(website.openStream()));        
Run Code Online (Sandbox Code Playgroud)

xml url android

5
推荐指数
1
解决办法
6526
查看次数

模拟alt + enter以在PHP到Excel的单元格CSV输出中创建换行符

我正在使用PHP生成CSV文件并在Excel中打开它.在每条记录的末尾添加"\n"会创建一个新行并且工作正常,但我需要找到一种在单元格内创建换行符的方法.将数据手动输入Excel时,alt + enter实现的功能相同.有没有人知道如何执行此操作?我试过"\n\r","\n",chr(10),似乎没有一个工作,只是在同一个单元格中继续获得一个完整的新行而不是换行符.

我想要实现的是一个看起来像这样的标题......这一切都在Excel中排成一行..

细胞

开始日期结束日期

感谢您提供的任何帮助!

php csv excel

5
推荐指数
1
解决办法
9018
查看次数

Fragment - 等待交易动画完成

当我执行 FragmentTransaction 时,我使用简单的向左滑动、向右滑动自定义动画。我的问题是,我使用事务动画加载的片段包含 onResume() 中的代码,用于进行 HTTP 调用,这会导致显示“请稍候”进度对话框。它有效,但我希望将我的代码从 onResume 移动到片段中的另一个方法,该方法在片段完全加载之前不会触发。换句话说,当动画完成并且完全滑入到位时。

我用它来启动新片段

FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
ft.setCustomAnimation(R.anim.slide_in_right, R.anim.slide_out_left);
ft.replace(R.id.realtabcontent, new MyFragment());
ft.commit();
Run Code Online (Sandbox Code Playgroud)

我希望 MyNewFragment() 中的方法在动画 100% 完成后初始化

那可能吗?

android android-animation android-fragments

5
推荐指数
1
解决办法
3579
查看次数

Firebird Jaybird 2.2.10 / ColdFusion 2018-字符串长度错误

我不确定这是否是ColdFusion 2018错误,或者它是否是ColdFusion 2018实施Firebird 2.5的Jaybird 2.2.10驱动程序的方式。

我有一个表,其中包含名为“ item_date”的列。此列具有Firebird“日期”数据类型。在ColdFusion 10中,以下查询根据返回的月份显示正确的字符串长度。但是,在ColdFusion 2018中,所有字符串的长度返回为9。几乎就像ColdFusion将结果集分配为CHAR(9)数据类型,而不是应有的VARCHAR。

我的概念证明代码示例如下所示。

<cfquery name="test" datasource="#application.dsn#">
    SELECT 
        CASE EXTRACT (MONTH from item_date)
        WHEN 1 THEN 'January'
        WHEN 2 THEN 'February'
        WHEN 3 THEN 'March'
        WHEN 4 THEN 'April'
        WHEN 5 THEN 'May'
        WHEN 6 THEN 'June'
        WHEN 7 THEN 'July'
        WHEN 8 THEN 'August'
        WHEN 9 THEN 'September'
        WHEN 10 THEN 'October'
        WHEN 11 THEN 'November'
        WHEN 12 THEN 'December'
        END itemMonth
    FROM    MY_TABLE
</cfquery>

<cfloop query="test">
    #test.itemMonth# - Length: #Len(test.itemMonth)#<br />
</cfloop> …
Run Code Online (Sandbox Code Playgroud)

coldfusion firebird jaybird firebird2.5

5
推荐指数
1
解决办法
73
查看次数