我想在我的应用程序中集成 zxing 二维码扫描仪,我的应用程序中有三个选项卡。
目前,当我的一个标签栏按钮被按下时,我正在调用 zxing qr 代码的扫描活动,但是当它调用它时,它会显示如下错误。
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>
</merge>
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);
.
.
.
}
我是否需要更改清单文件中的任何内容或我需要做的其他任何事情?