2017-07-13 169 views
-5

我有一個類來啓動一個新的活動,並且我有一個創建一個intent的函數。我需要將MainActivity.class變量傳遞給該函數。 通常我會這樣做。Android將變量傳遞給intent

Intent intent = new Intent(context, MainActivity.class); 

我wan't有這樣的事情:

Intent intent = new Intent(context, variable); 

所以我wan't改變活動基本上開始。這可能嗎?

+0

你的意思是你想要傳遞一個類變量到意圖? –

+0

你是否想將變量從一個活動傳遞給另一個? –

+0

根據你什麼是一個變量?確切地說,是 – Adonis

回答

0

如果我理解正確的,你想要什麼使用反射來獲取類名。

Class someActivity = Class.forName(getPackageName() + "MainActivity"); 
Intent intent = new Intent(context, someActivity); 
startActivity(intent); 
+0

。如果我這樣編輯這段代碼,我可以得到我想要的。 – Opsoftware

+0

嘗試類someActivity = Class.forName(getPackageName()+「.MainActivity」); Intent intent = new Intent(getApplicationContext(),someActivity); startActivity(intent); (例外e){ e.printStackTrace(); } – Opsoftware

0

您正在尋找這個。

private void callActivity(Activity activity,Class<?> className) 
{ 
    Intent intent = new Intent(activity, className); 
    startActivity(intent); 
} 

只需從您調用其他活動的位置傳遞活動以及您需要調用的className即可。

private void callActivity(Context context,Class<?> className) 
{ 
    Intent intent = new Intent(context, className); 
    startActivity(intent); 
}