android仅在输入片段后才启动zxing扫描仪
我有一个应用程序,使用jeremyfeinstein的SherlockFragment和汉堡包菜单“SlidingMenu” 我的应用程序也使用zxing条形码扫描仪 当我输入一个片段时,在片段中我有一个启动条形码扫描仪的按钮 但我需要的是当碎片进入时,启动扫描仪, 然后当扫描器视图被取消时,不要做任何事情 问题是现在我有了我的 扫描() 里面 onCreateView 所以当扫描器被关闭时,它会再次启动 这里有一些代码 在PhoneMenuList.java中,调用片段:android仅在输入片段后才启动zxing扫描仪,android,android-fragments,zxing,Android,Android Fragments,Zxing,我有一个应用程序,使用jeremyfeinstein的SherlockFragment和汉堡包菜单“SlidingMenu” 我的应用程序也使用zxing条形码扫描仪 当我输入一个片段时,在片段中我有一个启动条形码扫描仪的按钮 但我需要的是当碎片进入时,启动扫描仪, 然后当扫描器视图被取消时,不要做任何事情 问题是现在我有了我的 扫描() 里面 onCreateView 所以当扫描器被关闭时,它会再次启动 这里有一些代码 在PhoneMenuList.java中,调用片段: private vo
private void switchFragment(Fragment fragment, int index) {
if (getActivity() == null)
return;
/*
// doesnt work
if (newContent instanceof PhoneValidateView) {
((PhoneValidateView) newContent).scan();
}
*/
MainActivityPhone change = (MainActivityPhone) getActivity();
change.switchContent(newContent);
}
然后在PhoneValidateView.java上
public class PhoneValidateView extends SherlockFragment{
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
scan();
}
... }
那么,如何仅在表加载片段时显示“scan()”?不是每次碎片出现的时候
谢谢 将状态添加到片段中,并且仅在片段处于初始状态时调用
scan()
private boolean mScannerLaunched = false;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
// ...
mScannerLaunched = savedInstanceState != null && savedInstanceState.getBoolean("mScannerLaunched", false);
if (!mScannerLaunched) {
scan();
mScannerLaunched = true;
}
}
public void onSaveInstanceState(Bundle state) {
super.onSaveInstanceState(state);
state.putBoolean("mScannerLaunched", mScannerLaunched);
}
您好,只需将布尔值设为false,这样就不会启动新的扫描仪,谢谢!