2012-03-27 42 views
1

是否可以創建一個動態調用意圖?
我想叫mIntent一個字符串變量動態推入一個意圖電話..是有可能:動態調用類?

Intent newView = new Intent(getContext(), mIntent); 

        newView.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        getContext().startActivity(newView) 

我的解決方案,其中「mIntent」是一個字符串:

Intent i = new Intent(Intent.ACTION_VIEW); 
        i.setComponent(new ComponentName("com.slcinstore2","com.lcinstore2."+mIntent)); 
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

        getContext().startActivity(i); 

這樣做,然後將它添加到我的manifest文件中!

+0

你的問題不清楚,,在那裏你推'串variable'? – 2012-03-27 18:04:01

+0

'mIntent'的類型是什麼?在你打電話的活動中你想做什麼? – 2012-03-27 18:06:45

+0

mIntent是我從數據庫中獲得的字符串..我希望它是我的課程名稱並啓動新的意圖 – erik 2012-03-27 18:19:24

回答

3

你的問題有點不清楚,但也許我仍然明白你想要做什麼。 你意圖應該是這樣的:

String clsName = "com.foo.bar.myClass"; // fully qualified name 

Intent newView = new Intent(getContext(), Class.forName(clsName)); 
.... 
.... 
startActivity(newView); 

這可能是你的....我havnt測試這個想法,所以我不知道這是否實際工作。

1

可以使用的Class.forName(),並使用getPackageName(),以避免硬編碼:

Intent newView = new Intent(getContext(), Class.forName(getPackageName() + "YourClassName")); 
startActivity(newView);