塔斯克插件变量替换:开发人员



我正在为Taker Android应用程序制作一个插件。该插件基本上允许人们使用自己的设置值动态创建列表和卡片视图。

我认为允许使用 Tasker 变量来设置列表项等会很好。这就是我正在努力解决的问题。

这是我的代码部分,我为这个位(在我的编辑活动中):

resultBundle.putString("MessageString", message);
            resultBundle.putString("ContentString", AlertContents);
            resultBundle.putString("BackgroundColour", BackgroundCol);
            resultBundle.putString("TextColour", TextCol);
            resultBundle.putStringArrayList("myArray", theList);
            resultIntent.putExtras(resultBundle);
            //Take above values and replace any %Variables with the Tassker values in the host
            if ( TaskerPlugin.Setting.hostSupportsOnFireVariableReplacement( this ) )
                TaskerPlugin.Setting.setVariableReplaceKeys( resultBundle, new String [] { "MessageString" } );
            TaskerPlugin.Setting.setVariableReplaceKeys( resultBundle, new String [] { "ContentString" } );
            TaskerPlugin.Setting.setVariableReplaceKeys( resultBundle, new String [] { "BackgroundColour" } );
            TaskerPlugin.Setting.setVariableReplaceKeys( resultBundle, new String [] { "TextColour" } );
            TaskerPlugin.Setting.setVariableReplaceKeys( resultBundle, new String [] { "myArray " } );
            resultIntent.putExtras(resultBundle);

从本质上讲,这样做是将我的值设置为一个捆绑包,然后根据我的理解,"setVriableReplaceKeys"函数会遍历我在捆绑包中指定的每个键pai,以替换任何taskerr变量(例如%BATT)与存储在主机中的当前值。下面的不起作用,我只看到没有值的变量名称写出来,所以如果我把 %BATT 来测试它,我在列表中看到 %BATT 而不是实际的电池百分比。

任何帮助将不胜感激。我已经玩了很久了。

即使这已经有一段时间了,也许答案也会像这个问题对我所做的那样帮助其他人。

  1. 您的代码存在一些问题。起初,setVariableReplaceKeys需要一个StringArray,所以这就足够了:

if ( TaskerPlugin.Setting.hostSupportsOnFireVariableReplacement( this ) )
  TaskerPlugin.Setting.setVariableReplaceKeys( resultBundle,
  new String [] { "MessageString","ContentString","TextColour","myArray" } );
}
  1. if 语句中缺少大括号。
  2. 您正在调用两次 putExtras。第一个电话就足够了。

setVariableReplaceKeys将为您的捆绑包添加另一个额外的内容。如果您要在某处检查捆绑包是否有效,请记住这一点。

相关内容

最新更新