0

在我的應用中,我有一個雙選項卡活動,每個標籤對應一個片段。在我的其中一個選項卡中,我提示用戶輸入一個選項,確認後應該切換選項卡。所以我創建對話框,並切換標籤代碼如下所示:從對話框切換標籤頁時發生ClassCastException

new AlertDialog.Builder(getActivity()) 
    .setMessage("Login now with email?") 
    .setTitle("Prompt") 
    .setPositiveButton("Yes", 
         new DialogInterface.OnClickListener(){ 
           public void onClick(DialogInterface dialog, int which){ 
              getActivity().getActionBar().setSelectedNagivationItem(0)}) 
    .show(); 

然而,當我運行它,我得到一個

java.lang.RuntimeException: Unable to instantiate activity 
ComponentInfo com.package.app/com.package.app.activityname}: 
java.lang.ClassCastException: com.package.app.activityname cannot be cast to 
android.app.Activity 

此錯誤只有當我調用該方法時從對話框中,如果我在對話框不在前面的時候運行它,它就可以工作。我也嘗試在對話框關閉後在OnResume()中執行它,但它給了我同樣的錯誤。

回答

0

僅供參考,您是否嘗試過使用另一種方法更改alertdialog中的選項卡? :)例如:

 TabHost tabHost = (TabHost) findViewById(android.R.id.YOURTABHOST); 
     tabHost.setCurrentTab(0); 
+0

我必須首先在我的主要活動中設置tabhost嗎? – iamseiko

+0

是的,你有:) –