android.app.FragmentManager#findFragmentByTag ( )源码实例Demo

下面列出了android.app.FragmentManager#findFragmentByTag ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

private void restoreRetainedDataFragment() {
    // find the retained fragment
    FragmentManager fm = getFragmentManager();
    mRetainedDataFragment = (DataFragment) fm.findFragmentByTag(TAG);

    if (mRetainedDataFragment == null) {
        // Create
        mRetainedDataFragment = new DataFragment();
        fm.beginTransaction().add(mRetainedDataFragment, TAG).commit();

        mDataBuffer = new ArrayList<>();
        mTextSpanBuffer = new SpannableStringBuilder();
    } else {
        // Restore status
        mShowDataInHexFormat = mRetainedDataFragment.mShowDataInHexFormat;
        mTextSpanBuffer = mRetainedDataFragment.mTextSpanBuffer;
        mDataBuffer = mRetainedDataFragment.mDataBuffer;
        mSentBytes = mRetainedDataFragment.mSentBytes;
        mReceivedBytes = mRetainedDataFragment.mReceivedBytes;
    }
}
 
public static Completable getObservable(RxActivity activity)
{
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M || (
            ContextCompat.checkSelfPermission(
                    activity,
                    Manifest.permission.READ_EXTERNAL_STORAGE
            ) == PackageManager.PERMISSION_GRANTED
            && ContextCompat.checkSelfPermission(
                    activity,
                    Manifest.permission.WRITE_EXTERNAL_STORAGE
            ) == PackageManager.PERMISSION_GRANTED)
    )
        return Completable.complete();

    FragmentManager fm = activity.getFragmentManager();
    ExtStorageWritePermisisonCheckFragment f = (ExtStorageWritePermisisonCheckFragment) fm.findFragmentByTag(TAG);
    if(f == null)
    {
        f = new ExtStorageWritePermisisonCheckFragment();
        activity.getFragmentManager().beginTransaction().add(f, TAG).commit();
    }
    return f._extStoragePermissionCheckSubject;
}
 
@Override
public void showRequestPermissionRationale(@NonNull String rationale,
                                           @NonNull String positiveButton,
                                           @NonNull String negativeButton,
                                           @StyleRes int theme,
                                           int requestCode,
                                           @NonNull String... perms) {
    FragmentManager fm = getHost().getFragmentManager();

    // Check if fragment is already showing
    Fragment fragment = fm.findFragmentByTag(RationaleDialogFragment.TAG);
    if (fragment instanceof RationaleDialogFragment) {
        Log.d(TAG, "Found existing fragment, not showing rationale.");
        return;
    }

    RationaleDialogFragment
            .newInstance(positiveButton, negativeButton, rationale, theme, requestCode, perms)
            .showAllowingStateLoss(fm, RationaleDialogFragment.TAG);
}
 
源代码4 项目: delion   文件: SyncCustomizationFragment.java
private void closeDialogIfOpen(String tag) {
    FragmentManager manager = getFragmentManager();
    if (manager == null) {
        // Do nothing if the manager doesn't exist yet; see http://crbug.com/480544.
        return;
    }
    DialogFragment df = (DialogFragment) manager.findFragmentByTag(tag);
    if (df != null) {
        df.dismiss();
    }
}
 
源代码5 项目: edslite   文件: FileListViewFragmentBase.java
private void openLocation(Location locToOpen)
{
    FragmentManager fm = getFragmentManager();
    String openerTag = LocationOpenerBaseFragment.getOpenerTag(locToOpen);
    if(fm.findFragmentByTag(openerTag)==null)
    {
        LocationOpenerBaseFragment opener = LocationOpenerBaseFragment.getDefaultOpenerForLocation(locToOpen);
        Bundle openerArgs = new Bundle();
        LocationsManager.storePathsInBundle(openerArgs, locToOpen, null);
        openerArgs.putString(LocationOpenerBaseFragment.PARAM_RECEIVER_FRAGMENT_TAG, getTag());
        opener.setArguments(openerArgs);
        fm.beginTransaction().add(opener, openerTag).commit();
    }
}
 
源代码6 项目: edslite   文件: FilePropertiesFragment.java
private void cancelCalcTask()
{
	FragmentManager fm = getFragmentManager();
	if(fm == null)
		return;
	TaskFragment tf = (TaskFragment) fm.findFragmentByTag(CalcPropertiesTaskFragment.TAG);
	if(tf!=null)
		tf.cancel();
}
 
源代码7 项目: Augendiagnose   文件: OverlayPinchImageView.java
/**
 * Get the retainFragment - search it by the index. If not found, create a new one.
 *
 * @param fm    The fragment manager handling this fragment.
 * @param index The index of the view (required in case of multiple PinchImageViews to be retained).
 * @return the retainFragment.
 */
@NonNull
public static RetainFragment findOrCreateRetainFragment(@NonNull final FragmentManager fm, final int index) {
	RetainFragment fragment = (RetainFragment) fm.findFragmentByTag(TAG + index);
	if (fragment == null) {
		fragment = new RetainFragment();
		try {
			fm.beginTransaction().add(fragment, TAG + index).commit();
		}
		catch (IllegalStateException e) {
			TrackingUtil.sendException("opv1", e);
		}
	}
	return fragment;
}
 
源代码8 项目: android-commons   文件: BaseFragmentUtil.java
public static void showDialogFragment(final DialogFragment dialog,
                                      final String tag, final FragmentManager fragmentManager) {
  final FragmentTransaction ft = fragmentManager.beginTransaction();
  final Fragment prev = fragmentManager.findFragmentByTag(tag);
  if (prev != null) {
    ft.remove(prev);
  }
  ft.add(dialog, tag);
  ft.commitAllowingStateLoss();
}
 
源代码9 项目: Android-RTEditor   文件: RTProxyImpl.java
@Override
/* @inheritDoc */
public void openDialogFragment(String fragmentTag, DialogFragment fragment) {
    Activity activity = getActivity();
    if (activity != null) {
        FragmentManager fragmentMgr = activity.getFragmentManager();
        FragmentTransaction ft = fragmentMgr.beginTransaction();
        DialogFragment oldFragment = (DialogFragment) fragmentMgr
                .findFragmentByTag(fragmentTag);
        if (oldFragment == null) {
            fragment.show(ft, fragmentTag);
        }
    }
}
 
源代码10 项目: Augendiagnose   文件: PinchImageView.java
/**
 * Get the retainFragment - search it by the index. If not found, create a new one.
 *
 * @param fm The fragment manager handling this fragment.
 * @param index The index of the view (required in case of multiple PinchImageViews to be retained).
 * @return the retainFragment.
 */
@NonNull
public static RetainFragment findOrCreateRetainFragment(@NonNull final FragmentManager fm, final int index) {
	RetainFragment fragment = (RetainFragment) fm.findFragmentByTag(TAG + index);
	if (fragment == null) {
		fragment = new RetainFragment();
		fm.beginTransaction().add(fragment, TAG + index).commit();
	}
	return fragment;
}
 
源代码11 项目: UTubeTV   文件: VideoCastControllerActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.cast_activity);
  loadAndSetupViews();
  mVolumeIncrement = CastUtils.getFloatFromPreference(this, VideoCastManager.PREFS_KEY_VOLUME_INCREMENT);
  try {
    mCastManager = VideoCastManager.getInstance(this);
  } catch (CastException e) {
    // logged already
  }

  setupActionBar();
  Bundle extras = getIntent().getExtras();
  if (null == extras) {
    finish();
    return;
  }

  FragmentManager fm = getFragmentManager();
  VideoCastControllerFragment mediaAuthFragment = (VideoCastControllerFragment) fm.findFragmentByTag("task");

  // if fragment is null, it means this is the first time, so create it
  if (mediaAuthFragment == null) {
    mediaAuthFragment = VideoCastControllerFragment.newInstance(extras);
    fm.beginTransaction().add(mediaAuthFragment, "task").commit();
    mListener = mediaAuthFragment;
    setOnVideoCastControllerChangedListener(mListener);
  } else {
    mListener = mediaAuthFragment;
    mListener.onConfigurationChanged();
  }
}
 
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    FragmentManager fm = getFragmentManager();
    whatIsMaterialFragment = (WhatIsMaterialFragment) fm.findFragmentByTag(WhatIsMaterialFragment.TAG);

    if (whatIsMaterialFragment == null) {
        whatIsMaterialFragment = WhatIsMaterialFragment.newInstance();
        addFragment(whatIsMaterialFragment, WhatIsMaterialFragment.TAG);
    }
}
 
源代码13 项目: NewbieGuide   文件: Controller.java
private void addListenerFragment() {
    //fragment监听销毁界面关闭引导层
    if (fragment != null && Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN) {
        compatibleFragment(fragment);
        FragmentManager fm = fragment.getChildFragmentManager();
        ListenerFragment listenerFragment = (ListenerFragment) fm.findFragmentByTag(LISTENER_FRAGMENT);
        if (listenerFragment == null) {
            listenerFragment = new ListenerFragment();
            fm.beginTransaction().add(listenerFragment, LISTENER_FRAGMENT).commitAllowingStateLoss();
        }
        listenerFragment.setFragmentLifecycle(new FragmentLifecycleAdapter() {
            @Override
            public void onDestroyView() {
                LogUtil.i("ListenerFragment.onDestroyView");
                remove();
            }
        });
    }

    if (v4Fragment != null && v4Fragment.isAdded()) {
        android.support.v4.app.FragmentManager v4Fm = v4Fragment.getChildFragmentManager();
        V4ListenerFragment v4ListenerFragment = (V4ListenerFragment) v4Fm.findFragmentByTag(LISTENER_FRAGMENT);
        if (v4ListenerFragment == null) {
            v4ListenerFragment = new V4ListenerFragment();
            v4Fm.beginTransaction().add(v4ListenerFragment, LISTENER_FRAGMENT).commitAllowingStateLoss();
        }
        v4ListenerFragment.setFragmentLifecycle(new FragmentLifecycleAdapter() {
            @Override
            public void onDestroyView() {
                LogUtil.i("v4ListenerFragment.onDestroyView");
                remove();
            }
        });
    }
}
 
static void show(Fragment fragment) {
    FragmentManager manager = fragment.getActivity().getFragmentManager();
    if (manager.findFragmentByTag(TAG) == null) {
        FakeSignatureGlobalWarningDialog dialog = new FakeSignatureGlobalWarningDialog();
        dialog.setTargetFragment(fragment, /* requestCode: */ 0);
        dialog.show(manager, TAG);
    }
}
 
private void removeFragmentB() {
    FragmentManager fragmentManager = getFragmentManager();
    Fragment fragment = fragmentManager.findFragmentByTag(FragmentB.TAG);
    if (null != fragment) {
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.remove(fragment).commit();
    }
    //remove() only goes down to onDestroyView(), not onDestroy() and onDetach()
    //if addToBackStack(), back button will goes down to onDetach()
}
 
static void show(Fragment fragment) {
    FragmentManager manager = fragment.getActivity().getFragmentManager();
    if (manager.findFragmentByTag(TAG) == null) {
        FakeSignatureGlobalWarningDialog dialog = new FakeSignatureGlobalWarningDialog();
        dialog.setTargetFragment(fragment, /* requestCode: */ 0);
        dialog.show(manager, TAG);
    }
}
 
源代码17 项目: United4   文件: HiddenSettingsActivity.java
/**
 * Switches to the passed fragment
 * If the currently shown fragment has the same type as the argument, does nothing. Otherwise,
 * removes the current fragment and makes a new fragment of the passed in type and shows it
 * @param type the fragment to switch to
 * @param arguments arguments to give to the fragment
 */
private void swapScreens(FragmentType type, @Nullable Bundle arguments) {
    FragmentManager manager = getFragmentManager();
    FragmentTransaction transaction = manager.beginTransaction();
    // if we already have a fragment and that fragment is not the fragment we want to show, remove it
    // otherwise, it is the fragment we want to show, so we're done, just return and abort the transaction
    if (manager.findFragmentByTag("fragment") != null) {
        if (((HiddenSettingsFragment) manager.findFragmentByTag("fragment")).getType() != type) {
            transaction.remove(manager.findFragmentByTag("fragment"));
        } else {
            return;
        }
    }
    // Make a new fragment
    Fragment newFragment = null;
    switch (type) {
        case SETTINGS_LIST:
            newFragment = new SettingsListFragment();
            break;
        case JANITOR_LOGIN:
            newFragment = new JanitorLoginFragment();
            break;
        case THREAD_WATCHER:
            newFragment = new ThreadWatcherFragment();
            break;
        case AWOO_ENDPOINT:
            newFragment = new AwooEndpointFragment();
            break;
        case DEBUG_SETTINGS_LIST:
            newFragment = new DebugSettingsListFragment();
            break;
        case COLOR_LIST:
            newFragment = new ColorListFragment();
            break;
        case PROPERTY_EDITOR:
            newFragment = new PropertyEditorFragment();
            break;
        case PROPERTY_EDITOR_NEW:
            newFragment = new NewPropertyFragment();
            break;
        case PROPERTIES_LIST:
            newFragment = new PropertiesListFragment();
            break;
        case HIDDEN_LIST:
            newFragment = new HiddenThreadListFragment();
            break;
        case NOTIFICATION_SETTINGS:
            newFragment = new NotificationSettingsFragment();
            break;
        case COLOR_PICKER:
            newFragment = new ColorPickerFragment();
            break;
    }
    newFragment.setArguments(arguments);
    // Put the fragment in our layout
    //transaction.add(newFragment, "fragment");
    transaction.replace(R.id.userscript_activity_main_fragment, newFragment, "fragment");
    transaction.addToBackStack("fragment"); // TODO is this needed?
    transaction.commit();
}
 
源代码18 项目: FireFiles   文件: HomeFragment.java
public static HomeFragment get(FragmentManager fm) {
    return (HomeFragment) fm.findFragmentByTag(TAG);
}
 
源代码19 项目: FireFiles   文件: PickFragment.java
public static PickFragment get(FragmentManager fm) {
    return (PickFragment) fm.findFragmentByTag(TAG);
}
 
源代码20 项目: codeexamples-android   文件: RssfeedActivity.java
private void showDetailFragment(int containerId, String rssItemUrl, boolean addToBackStack) {
	
	// find detail fragment first
	FragmentManager fm = getFragmentManager();
	RssfeedDetailFragment detailFragment =
			(RssfeedDetailFragment) fm.findFragmentByTag(TAG_DETAIL);

	if (detailFragment == null) {
		// create new detail fragment
		detailFragment = RssfeedDetailFragment.instantiate(rssItemUrl);
		
		// add fragment to the layout
		addDetailFragment(detailFragment, containerId, addToBackStack, fm);
		
	} else if (detailFragment.getId() != containerId) {
			
		// remove fragment from old container
		fm.beginTransaction().remove(detailFragment).commit();
		fm.executePendingTransactions();
		
		// add fragment to the new container
		addDetailFragment(detailFragment, containerId, addToBackStack, fm);
		
	} // else, fragment is already at the right place
	
	detailFragment.setUrl(rssItemUrl);
	
}