【问题标题】:How do I add BarcodeFragment in code?如何在代码中添加 BarcodeFragment?
【发布时间】:2014-04-01 06:44:18
【问题描述】:

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

谢谢。

【问题讨论】:

  • 通过getSupportFragmentManager()试试

标签: java android barcode zxing


【解决方案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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 2012-12-02
    • 2015-01-31
    • 2013-11-11
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多