簡體   English   中英

如何在 Intent 中創建類變量: Intent intent = new Intent(getApplicationContext().this, variable.class);

[英]How do you make a class varible in an Intent: Intent intent = new Intent(getApplicationContext().this, variable.class);

我創建了一個“設置活動”,它有一個帶有三個按鈕的單選按鈕組。 每個按鈕都被編碼為將不同的字符串傳遞給 sharedPreferences。 每個字符串都是項目中一個活動的名稱。 1.) DollarActivity 2.) DynamicPercentActivity 3.) StaticPercentActivity

(我使用設備文件資源管理器確認字符串已成功保存到 sharedPreferences)

我的想法是檢索保存到 sharePreferences 的字符串數據並替換構成下面 Intent 的一部分的 varActivity。

Intent intent = new Intent(getApplicationContext().this, varActivity.class);
startActivity(intent);

我試圖創建一個變量“varActivity”,它從 sharedPreferences 中檢索相關字符串,但是它不起作用。 Android Studio 提示我創建類 varActivity 或內部類 varActivity 或接口 varActivity。 我嘗試了創建類方法,但是這種努力產生了要解決的附加問題(活動之間的公共靜態無效/公共無效兼容性問題)。

有沒有辦法從 sharePreferences 中檢索字符串並用新的字符串數據替換 varActivity。

無法按名稱啟動活動,但如果您將類及其名稱放在 Map.xml 中,您的任務仍然可以實現。

Map<String, Class> activities = new HashMap<String, Class>() {{
    put("DollarActivity", DollarActivity.class);
    put("DynamicPercentActivity", DynamicPercentActivity.class);
    put("StaticPercentActivity", StaticPercentActivity.class);
}};
...
new Intent(this, activities.get(nameFromPreferences));

無論如何,我絕對建議您重新考慮您正在嘗試解決的任務並找到更好的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM