我想使用这个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)
谢谢。
答案 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();