我想在我的应用程序中添加一项功能,用户可以在该设备上创建按钮来启动应用程序。现在,要设置它,用户将输入他们想要调用的Intent Action。如果用户输入“ACTION_MAIN”作为字符串值,是否可以在java中将其作为Intent.ACTION_MAIN处理?
我知道使用地图可以是一种解决方案,但保留所有可用意图的详尽列表可能很麻烦。他们还有其他解决办法吗?字符串值可以引用变量吗?
答案 0 :(得分:0)
假设用户定义的操作为字符串值存储在userInput
:
String userInput = "ACTION_MAIN";
您可以使用reflection获取Intent.<ACTION_SOMETHING>
的相应值,如下所示:
try {
String action = (String) Intent.class.getDeclaredField(userInput).get(String.class);
// use the action value here..
} catch (Exception e) {
// no such action possible, maybe mistyped the action name
e.printStackTrace();
}
示例强>:
String action = (String) Intent.class.getDeclaredField("ACTION_MAIN").get(String.class);
返回:
"android.intent.action.MAIN"