如何使用存储在string中的值设置intent动作

时间:2013-12-19 02:05:46

标签: java android android-intent

我想在我的应用程序中添加一项功能,用户可以在该设备上创建按钮来启动应用程序。现在,要设置它,用户将输入他们想要调用的Intent Action。如果用户输入“ACTION_MAIN”作为字符串值,是否可以在java中将其作为Intent.ACTION_MAIN处理?

我知道使用地图可以是一种解决方案,但保留所有可用意图的详尽列表可能很麻烦。他们还有其他解决办法吗?字符串值可以引用变量吗?

1 个答案:

答案 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"