下面列出了android.support.v4.app.Fragment#getContext ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static void show(Fragment parent, ContactSourceType sourceType, boolean singleNumberMode) {
Context context = parent.getContext();
// check permission
final String permission = ContactsAccessHelper.getPermission(sourceType);
if (permission == null || Permissions.notifyIfNotGranted(context, permission)) {
return;
}
// create fragment's args
Bundle arguments = new Bundle();
arguments.putSerializable(SOURCE_TYPE, sourceType);
arguments.putBoolean(SINGLE_NUMBER_MODE, singleNumberMode);
// open the dialog activity with the fragment
CustomFragmentActivity.show(context, parent,
getTitleId(context, sourceType),
GetContactsFragment.class, arguments, 0);
}
public Context getContext() {
Activity activity = getActivity();
Fragment fragment = getFragment();
if (activity == null && fragment == null) {
return null;
}
if (activity == null) {
return fragment.getContext();
}
if (fragment == null) {
return activity;
}
return null;
}
public PrayerTimePresenter(Fragment fragment) {
mContext = fragment.getContext();
this.MVPView = (net.a6te.lazycoder.muslim_pro_islamicremainders.MVP.MVPView.PrayerTimeView) fragment;
prayerTimes = new ArrayList<>();
savedData = new SavedData(fragment.getContext());
calculationMethodId = savedData.getCalculationMethodId();
juristicMethodId = savedData.getJuristicMethodId();
city = savedData.getUserCity();
latitude = savedData.getLat();
longitude = savedData.getLong();
}
public void start(Fragment fragment, int requestCode){
final Context context = fragment.getContext();
if(hasPermission(context)) {
fragment.startActivityForResult(createIntent(context), requestCode);
}else{
Toast.makeText(context, R.string.mis_error_no_permission, Toast.LENGTH_SHORT).show();
}
}
public static void startForRecovery(@NonNull final Fragment fragment, @NonNull final PaymentRecovery recovery,
final int reqCode) {
final Context context = fragment.getContext();
if (context != null) {
final Card card = recovery.getCard();
final Intent intent = card != null ? createIntent(context, card) : createIntent(context, recovery);
intent.putExtra(EXTRA_PAYMENT_RECOVERY, recovery);
intent.putExtra(EXTRA_REASON, Reason.from(recovery).name());
fragment.startActivityForResult(intent, reqCode);
}
}
public FragmentStartWrapper(Fragment fragment) {
super(fragment.getContext());
this.fragment = fragment;
}
public static void startMapForResult(Fragment fragment) {
Intent intent = new Intent(fragment.getContext(), MapsActivity.class);
fragment.startActivityForResult(intent, IMAGE_VIDEO_LOCATION_REQUEST_CODE);
}
/**
* Create a new Builder for an {@link AppSettingsDialog}.
* @param fragment the Fragment in which to display the dialog.
* @param rationale text explaining why the user should launch the app settings screen.
*/
public Builder(@NonNull Fragment fragment, @NonNull String rationale) {
mActivityOrFragment = fragment;
mContext = fragment.getContext();
mRationale = rationale;
}
public FragmentUriRequest(@NonNull Fragment fragment, @NonNull String uri) {
super(fragment.getContext(), uri);
configStartAction(fragment);
}
public static void launch(@Nullable Fragment fragment, BlogPostBean postBean) {
if (fragment == null) return;
Intent intent = new Intent(fragment.getContext(), ReadActivity.class);
intent.putExtra(BlogPostBean.class.getSimpleName(), postBean);
fragment.startActivityForResult(intent, ACTIVITY_REQUEST_CODE);
}
public static void open(Fragment fragment, FunctionDocumentItem item) {
Intent intent = new Intent(fragment.getContext(), MarkdownDocumentActivity.class);
intent.putExtra(MarkdownDocumentActivity.EXTRA_ASSET_PATH, item.getAssetPath());
intent.putExtra(MarkdownDocumentActivity.EXTRA_DOCUMENT_NAME, item.getName());
fragment.startActivityForResult(intent, 0);
}
public PostListAdapter(Fragment fragment, List<Post> postList) {
this.mContext = fragment.getContext();
this.mPostList = postList;
}
/**
* 启动选择器,通过 Fragment 打开
*/
public void startPicker(Fragment fragment) {
Intent intent = new Intent(fragment.getContext(), VMPickGridActivity.class);
intent.putParcelableArrayListExtra(VMConstant.VM_KEY_PICK_PICTURES, (ArrayList<? extends Parcelable>) mSelectedPictures);
fragment.startActivityForResult(intent, VMConstant.VM_PICK_REQUEST_CODE);
}
/**
* 获取预览的fragment里的布局
*
* @param fragment 当前加载的fragment,可以使用以下方式来绑定生命周期
* <p>
* fragment.getLifecycle().addObserver(new ILifeCycleCallBack() {
* public void onResume() {}
* public void onPause() {}
* public void onDestroy() {}
* });
*</p>
*
* @param imageItem 当前加载imageitem
* @param presenter presenter
* @return 预览的布局
*/
public View getItemView(Fragment fragment, final ImageItem imageItem, IPickerPresenter presenter) {
if (imageItem == null) {
return new View(fragment.getContext());
}
RelativeLayout layout = new RelativeLayout(getContext());
final CropImageView imageView = new CropImageView(getContext());
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
// 启用图片缩放功能
imageView.setBounceEnable(true);
imageView.enable();
imageView.setShowImageRectLine(false);
imageView.setCanShowTouchLine(false);
imageView.setMaxScale(7.0f);
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
imageView.setLayoutParams(params);
layout.setLayoutParams(params);
layout.addView(imageView);
ImageView mVideoImg = new ImageView(getContext());
mVideoImg.setImageDrawable(getResources().getDrawable(R.mipmap.picker_icon_video));
RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(PViewSizeUtils.dp(getContext(), 80), PViewSizeUtils.dp(getContext(), 80));
mVideoImg.setLayoutParams(params1);
params1.addRule(RelativeLayout.CENTER_IN_PARENT);
layout.addView(mVideoImg, params1);
if (imageItem.isVideo()) {
mVideoImg.setVisibility(View.VISIBLE);
} else {
mVideoImg.setVisibility(View.GONE);
}
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (imageItem.isVideo()) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setDataAndType(imageItem.getUri(), "video/*");
getContext().startActivity(intent);
return;
}
singleTap();
}
});
DetailImageLoadHelper.displayDetailImage(false, imageView, presenter, imageItem);
return layout;
}
public Builder(Fragment fragment) {
this.context = fragment.getContext();
}
public RxDialogChooseImage(Fragment fragment) {
super(fragment.getContext());
initView(fragment);
}
public RxDialogChooseImage(Fragment fragment, int themeResId) {
super(fragment.getContext(), themeResId);
initView(fragment);
}
static void start(@NonNull Fragment fragment, int requestCode) {
Intent intent = new Intent(fragment.getContext(), SearchActivity.class);
fragment.startActivityForResult(intent, requestCode);
fragment.getActivity().overridePendingTransition(0, R.anim.activity_fade_exit);
}
public RxDialogChooseImage(Fragment fragment, float alpha, int gravity, LayoutType layoutType) {
super(fragment.getContext(), alpha, gravity);
mLayoutType = layoutType;
initView(fragment);
}
/**
* Create a new Builder for an {@link AppSettingsDialog}.
*
* @param fragment the {@link Fragment} in which to display the dialog.
*/
public Builder(@NonNull Fragment fragment) {
mActivityOrFragment = fragment;
mContext = fragment.getContext();
}