我想在我的应用程序中集成zxing qr代码扫描程序,该应用程序在我的应用程序中有三个选项卡。
目前当我的其中一个标签栏按钮被按下时,我正在调用zxing qr code的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);
.
.
.
}
我是否需要更改清单文件中的任何内容或我需要做的任何事情?
任何人都可以帮助我,我该怎么办?
提前致谢...
答案 0 :(得分:1)
最后我自己解决了我的问题,问题是,我的主项目中有一个CaptureActivity.java文件。通过在主项目的CaptureActivity.java文件中添加TabHost来解决问题。
希望它对其他人也有帮助。