我想使用这个库: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
期望的类型是Fragment
的android.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/