2013-01-16 28 views
0

在我的本地擴展的本機java代碼中,我需要跳轉到特定頁面,我試過的是在FREFunction對象的調用函數中啓動一個新的Activity,我的代碼是這樣的:在原生擴展的FREFunction中啓動活動

`ComponentName comp = new ComponentName(arg0.getActivity() ,SecondActivity.class); 
Intent intent = new Intent(); 
intent.setComponent(comp); 
arg0.getActivity().startActivity(intent);` 

public class SecondActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.second); 
       EditText show = (EditText) findViewById(R.id.show); 
       ComponentName componentName = getIntent().getComponent(); 
    show.setText("組件包名"); 
} 

} 

從DDMS的logcat的,我相信SecondActivity類已被執行,但在的setContentView(R.layout.second)失敗; 那麼我的本機代碼有什麼問題,我該如何處理它?任何機構可以幫助我或給我同樣的建議嗎?

回答

0

不幸的是,您不能使用R. *簡寫來訪問ANE中的資源ID。

我寫了一個小幫手類/功能可能對您有所幫助:

http://labs.distriqt.com/post/1245

它基本上是搜索資源包的資源。

如果您可以訪問您的FREContext實例,你也可以使用getResourceId功能,更多信息請參閱以下內容:

http://help.adobe.com/en_US/air/extensions/WS39e706a46ad531be-fd70de2132a8f3874e-8000.html#WS39e706a46ad531be-fd70de2132a8f3874e-7fff

0

startActivity之前使用getResourceID

int layoutID;    

Intent i = new Intent(arg0.getActivity(), SecondActivity.class); 

try { 
     layoutID = arg0.getResourceId("layout.second"); 
    } catch (Exception e) { 
     System.out.printf("getResourceID() failed with error:\n\"%s\"\n",e.toString()); 
     Toast.makeText(arg0.getActivity(), "getResourceID() failed" + e.toString(), Toast.LENGTH_SHORT).show(); 
     return null; 
     } 

System.out.printf("layout ID: %d\n", layoutID); 
Toast.makeText(arg0.getActivity(), "success: layout ID is " + String.valueOf(layoutID),   Toast.LENGTH_SHORT).show(); 

i.putExtra("layoutID", layoutID); 

再後來你可以用onCreate檢索佈局ID:

int layoutID = getIntent().getIntExtra("layoutID", -1); 
setContentView(layoutID);