如何在代码中添加BarcodeFragment

如何在代码中添加BarcodeFragment

我想使用这个库: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)


谢谢。

最佳答案

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

您可以通过更改MainActivity并使其实现FragmentActivity(请参见doc 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();

关于java - 如何在代码中添加BarcodeFragment?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22092206/

10-08 22:23