java - 需要从字符串源打开一个 Intent

标签 java android android-studio

我在这里面临挑战。我创建了一个列表(在 listView 中),当我选择一个项目(这个列表的)时,它返回一个字符串。我需要用这个字符串打开一个新屏幕。

让我试着解释一下:这个列表包含以下内容(这里只显示了一小部分):

"ACTION_SETTINGS", "ACTION_SHOW_REGULATORY_INFO", "ACTION_SOUND_SETTINGS", "ACTION_STORAGE_VOLUME_ACCESS_SETTINGS", "ACTION_APPLICATION_DETAILS_SETTINGS",
"ACTION_SYNC_SETTINGS", "ACTION_USAGE_ACCESS_SETTINGS", "ACTION_USER_DICTIONARY_SETTINGS"  blablabla...

实际上像上面的选项有一百多个选项。这些选项是特定的配置选项。因此,当我单击其中一个选项时,它应该会打开“特定配置屏幕”。

如果我这样做它会起作用,但我想要的是从列表中选择而不是这样:

Intent intent = new Intent(android.provider.Settings.ACTION_SOUND_SETTINGS);
startActivity(intent);

//以上是执行此操作的“静态”方式(但有效)

我想要的是一种“动态”的方式来做到这一点。

类似于:

String novaTela = "android.provider.Settings."  + listaConf.getItemAtPosition( i ).toString();
// above listaConf is my ListView
Intent intent = new Intent(novaTela);

我已经尝试过解析但没有成功。像这样:

Intent intent = Intent.parseIntent(sIntent); // I don't know it is possible

如果我像这样使用“固定参数”:

Intent intent = new Intent(android.provider.Settings.ACTION_SOUND_SETTINGS);
startActivity(intent); 

那行得通...但是如果我尝试这样的“动态”方式:

    String novaTela = "android.provider.Settings." + listaConf.getItemAtPosition( i ).toString(); 
Intent intent = new Intent(novaTela);

我得到一个错误:

No activity Found to handle Intent
{act=android.provider.Settings.ACTION_SOUND_OPTIONS}

有人可以帮帮我吗?

最佳答案

你从这一行中得到了什么

String setting = android.provider.Settings.ACTION_SETTINGS;

"android.settings.SETTINGS"

直接传入Intent即可:

Intent intent = new Intent("android.settings.SETTINGS");
startActivity(intent);

所以这应该可以解决您的问题:

String novaTela = listaConf.getItemAtPosition( i ).toString().replace("ACTION_","android.settings."); 
Intent intent = new Intent(novaTela);

关于java - 需要从字符串源打开一个 Intent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58958095/

相关文章:

通过 Java Web Start 部署 JavaFX - 加载进度条

android - ActivityGroup 已弃用

Android - 总是从通知返回到当前 Activity ?

android - 为什么 XML 元素在我的 android studio 模拟器上不可见?

java - 振动的持续时间和模式

java - Intent 劫持应用程序计费

java - 将小数转换为另一种基数的时间复杂度

gradle - 在本地和另一个项目中构建 Studio/Gradle 项目

java.lang.NoClassDefFoundError : com/android/utils/ILogger into visual studio 2015 错误

java - LibGDX - 多台机器上的库