2013-05-04 124 views
2

我想在我的應用程序中集成zxing qr代碼掃描器,在我的應用程序中有三個選項卡。如何將tab主機與zxing qr代碼掃描器集成?

當前,當我的標籤欄butto被按下的時候,我正在調用zxing qr代碼的scann活動,但是當它調用它顯示如下所示的錯誤時。

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.beepz/com.google.zxing.client.android.CaptureActivity}: java.lang.RuntimeException: Your content must have a TabHost whose id attribute is 'android.R.id.tabhost' 

而是我的碼是具有兩個選項卡的主機控制和我在活動呼叫實例標籤主機如下所示。

XML文件(Capture.xml):

<merge xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:android1="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<FrameLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <SurfaceView 
     android:id="@+id/preview_view" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_centerInParent="true" > 

     <TabHost 
      android:id="@android:id/tabhost" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" > 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical" > 

       <TabWidget 
        android:id="@android:id/tabs" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" > 
       </TabWidget> 

       <FrameLayout 
        android:id="@android:id/tabcontent" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" > 

        <LinearLayout 
         android:id="@+id/tab1" 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" > 
        </LinearLayout> 

        <LinearLayout 
         android:id="@+id/tab2" 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" > 
        </LinearLayout> 

        <LinearLayout 
         android:id="@+id/tab3" 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" > 
        </LinearLayout> 
       </FrameLayout> 
      </LinearLayout> 
     </TabHost> 

     <com.google.zxing.client.android.ViewfinderView 
      android:id="@+id/viewfinder_view" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:background="@color/transparent" /> 

    </SurfaceView> 
</FrameLayout> 

Java文件:(CaptureActivity.java)

public final class CaptureActivity extends TabActivity implements 
    SurfaceHolder.Callback { 

private TabHost tabHost; 

public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    Window window = getWindow(); 
    window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
    window.setFormat(PixelFormat.TRANSLUCENT); 

    setContentView(R.layout.capture); 

    tabHost = getTabHost(); 
    Intent intent = new Intent().setClass(this, first.class);  
    TabSpec spec = tabHost.newTabSpec("First Tab").setIndicator("First Tab",getResources().getDrawable(R.drawable.iconinfo)).setContent(intent); 
    tabHost.addTab(spec); 
    . 
    . 
    . 

} 

我是否需要更改清單文件或任何什麼東西否則我需要做?

任何機構請幫我,我該怎麼辦?

在此先感謝...

回答

1

最後我解決我自己我的問題,問題是,有在我的主要項目CaptureActivity.java文件。通過在主項目的CaptureActivity.java文件中添加TabHost解決了問題。

希望這對其他人也有幫助。