2014-02-28 62 views
0

嗨,我是爲我的刷卡標籤活動的錯誤SwipeTab返回操作欄必須有一個回調的異常

操作欄必須有回調

我相信我遵循的正確實施它但仍然得到這個錯誤。

02-28 22:21:27.709:E/AndroidRuntime(5812):致命異常:主 02-28 22:21:27.709:E/AndroidRuntime(5812):了java.lang.RuntimeException:無法以啓動活動ComponentInfo {com.thesis.docdroid/com.thesis.docdroid.MainActivity}:java.lang.IllegalStateException:操作欄選項卡必須具有回調 02-28 22:21:27.709:E/AndroidRuntime(5812):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074) 02-28 22:21:27.709:E/AndroidRuntime(5812):at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2099) 02- 28 22:21:27.709:E/AndroidRuntime(5812):在android.app.ActivityThread.access $ 600(ActivityThread.java:138) 02-28 22:21:27.709:E/AndroidRuntime(5812):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1205) 02-28 22:21:27.709:E/AndroidRuntime(5812):在android。 os.Handler.dispatchMessage(Handler.java:99) 02-28 22:21:27.709:E/AndroidRuntime(5812):at android.os.Looper.loop(Looper.java:137) 02-28 22: 21:27.709:E/AndroidRuntime(5812):在android.app.ActivityThread.main(ActivityThread.java:4929) 02-28 22:21:27.709:E/AndroidRuntime(5812):在java.lang.reflect。 Method.invokeNative(Native Method) 02-28 22:21:27.709:E/AndroidRuntime(5812):at java.lang.reflect.Method.invoke(Method.java:511) 02-28 22:21:27.709 :E/AndroidRuntime(5812):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:798) 02-28 22:21:27.709:E/AndroidRuntime(5812): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565) 02-28 22:21:27.709:E/AndroidRuntime(5812):at dalvik.system.NativeStart.main(Native Method) 02 -28 22:21:27.709:E/AndroidRuntime(5812):導致:java.lang.IllegalStateException:操作欄選項卡必須有回調 02-28 22:21:27.709:E/AndroidRuntime(5812):at com .android.internal.app.ActionBarImpl.configureTab(ActionBarImpl.java:549) 02-28 22:21:27.709:E/AndroidRuntime(5812):at com.android.internal.app.ActionBarImpl.addTab(ActionBarImpl.java :575) 02-28 22:21:27.709:E/AndroidRuntime(5812):at com.android.internal.app.ActionBarImpl.addTab(ActionBarImpl.java:563) 02-28 22:21:27.709:E/AndroidRuntime(5812):at com.thesis.docdroid.MainActivity.onCreate(MainActivity.java:41) 02-28 22:21:27.709:E/AndroidRuntime(5812):在android.app.Activity.performCreate(Activity.java:5254) 02-28 22:21:27.709:E/AndroidRuntime(5812):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java: 1082) 02-28 22:21:27.709:E/AndroidRuntime(5812):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2038) 02-28 22:21:27.709:E/AndroidRuntime(5812) ... 11多個

這是我的代碼:

import android.app.ActionBar; 
import android.app.ActionBar.Tab; 
import android.app.ActionBar.TabListener; 
import android.app.FragmentTransaction; 
import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 

public class MainActivity extends FragmentActivity implements TabListener { 
    private String selectedProfileName; 
    ActionBar actionBar; 

    @Override 
    protected void onCreate(Bundle arg0) { 
    // TODO Auto-generated method stub 
    super.onCreate(arg0); 
     setContentView(R.layout.main_activity); 

     Bundle args = getIntent().getExtras(); 
     selectedProfileName = args.getString("key_name"); 

     InitializeActionBar(); 

    } 

    public void InitializeActionBar() { 
     actionBar = getActionBar(); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

     ActionBar.Tab tabBodyPart = actionBar.newTab(); 
     tabBodyPart.setText("Body Parts"); 
     tabBodyPart.setTabListener(MainActivity.this); 

     ActionBar.Tab tabGeneralSymptoms = actionBar.newTab(); 
     tabBodyPart.setText("General Symptoms"); 
     tabBodyPart.setTabListener(MainActivity.this); 

     ActionBar.Tab tabSelectedSymptoms = actionBar.newTab(); 
     tabBodyPart.setText("Selected Symptoms"); 
     tabBodyPart.setTabListener(MainActivity.this); 

     actionBar.addTab(tabBodyPart); 
     actionBar.addTab(tabGeneralSymptoms); 
     actionBar.addTab(tabSelectedSymptoms); 
    } 

    @Override 
    public void onTabReselected(Tab tab, FragmentTransaction ft) { 
    // TODO Auto-generated method stub 

    } 

    @Override 
    public void onTabSelected(Tab tab, FragmentTransaction ft) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
     // TODO Auto-generated method stub 

    } 
} 

回答

1

複製麪食錯誤。

您有:

tabBodyPart.setText("General Symptoms"); 
tabBodyPart.setTabListener(MainActivity.this); 

你想:

tabGeneralSymptoms.setText("General Symptoms"); 
tabGeneralSymptoms.setTabListener(MainActivity.this); 
+0

哦,你是對的!這讓我看起來很蠢。哈哈哈,感謝您的注意。 :) – sander126

+0

適合每個人。標記爲已解決? :P – meredrica

0

您正在使用的操作欄,這是不是在V4庫支持,使用V7代替。使用ActionBarActivty,其延伸FragmentActivity

+0

我的問題已通過@meredrica解決了上述評論。感謝您的回答。 – sander126

相關問題