2011-10-23 39 views
0

我有一個打開新活動的功能,但我不想爲此使用字符串。我的功能如下所示。如果你看到這一點,我認爲我的問題很清楚。如何使用字符串打開新屏幕?

public boolean showScreen(String screen) { 
    Intent intent = new Intent(this, screen.class); 
    startActivity(intent); 
    return true; 
} 

編輯://如果我使用try和catch,錯誤消失。我的系統現在工作正常。

回答

1

您應該使用Class.forName(String s)來獲取特定字符串的Class。

代碼:

public boolean showScreen(String screen) { 
    Intent intent = new Intent(this, Class.forName(screen)); 
    startActivity(intent); 
    return true; 
} 

希望這有助於!

+0

如果我改變我的功能,我得到一個錯誤Class.forName(屏幕): 未處理的異常類型ClassNotFoundException –

+0

您必須設置正確的類名稱,包括包名稱。 –

+0

字符串的值是什麼?它是完全合格的名稱,例如'com.vries.app.TheClass'? – dmon

0

我會使用枚舉並將參數更改爲它。或者至少將字符串解析爲相應的枚舉。然後你可以切換它。