如何在代码中添加BarcodeFragment?

时间:2014-02-28 10:14:53

标签: java android barcode zxing

我想使用这个lib:https://code.google.com/p/barcodefraglibv2/

但我无法弄清楚如何在代码中添加BarcodeFragment。 这是一个示例:

public class MainActivity extends Activity implements IScanResultHandler{
        BarcodeFragment fragment;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            fragment = new BarcodeFragment();
            FragmentTransaction ft = getFragmentManager().beginTransaction();
            ft.add(R.id.sample, fragment).commit();
            fragment.setScanResultHandler(this);

        }
    }

但我在这里遇到错误:

ft.add(R.id.sample, fragment).commit();

The method add(int, Fragment) in the type FragmentTransaction is not applicable for the arguments (int, BarcodeFragment)

谢谢。

1 个答案:

答案 0 :(得分:1)

这是一个导入问题。您的Activity未使用支持库,因此FragmentTransaction.add期望Fragment类型为android.app.Fragment,而您提供的BarcoreFragment扩展android.support.v4.app.Fragment }};

您可以通过更改MainActivity并将其设为FragmentActivity(请参阅文档here),然后修复导入并进行以下更改来解决此问题:

import android.app.FragmentTransaction;
import android.app.Activity;
MainActivity extends Activity
FragmentTransaction ft = getFragmentManager().beginTransaction();

成为

import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.FragmentActivity;
MainActivity extends FragmentActivity
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();