我正在为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 而不是实际的电池百分比。
任何帮助将不胜感激。我已经玩了很久了。
即使这已经有一段时间了,也许答案也会像这个问题对我所做的那样帮助其他人。
- 您的代码存在一些问题。起初,setVariableReplaceKeys需要一个StringArray,所以这就足够了:
if ( TaskerPlugin.Setting.hostSupportsOnFireVariableReplacement( this ) )
TaskerPlugin.Setting.setVariableReplaceKeys( resultBundle,
new String [] { "MessageString","ContentString","TextColour","myArray" } );
}
- if 语句中缺少大括号。
- 您正在调用两次 putExtras。第一个电话就足够了。
setVariableReplaceKeys将为您的捆绑包添加另一个额外的内容。如果您要在某处检查捆绑包是否有效,请记住这一点。