下面列出了怎么用android.support.v4.app.FragmentActivity的API类实例代码及写法,或者点击链接到github查看源代码。
@Nullable
public static Fragment getCurrentFragment(View targetView) {
Activity activity = UETool.getInstance().getTargetActivity();
if (activity instanceof FragmentActivity) {
List<Fragment> fragments = collectVisibleFragment(((FragmentActivity) activity).getSupportFragmentManager());
for (int i = fragments.size() - 1; i >= 0; i--) {
Fragment fragment = fragments.get(i);
if (findTargetView(fragment.getView(), targetView)) {
return fragment;
}
}
}
return null;
}
public void addToActivity(@NonNull Object target, Fragment fragment) {
String tag = null;
for (Field fragmentField : fragmentFields) {
Fragment fragmentOfField = (Fragment) new FieldReader(target, fragmentField).read();
if (fragment == fragmentOfField) {
RFragment fragmentAnnotation = fragmentField.getAnnotation(RFragment.class);
tag = fragmentAnnotation.tag();
}
}
if (tag == null || tag.isEmpty()) {
tag = fragment.getClass().toString();
}
ControllerActivity controllerActivity = getAndroidUnitTest().activity();
//if no activity is create, the default activity manager behaviour is to create one
if (controllerActivity.get() == null) {
controllerActivity.createAndInitActivity(FragmentActivity.class, null);
controllerActivity.setActivityState(ActivityState.CREATED);
}
AnnotationFragmentManager.addToActivity(getActivity(), fragment, tag);
}
public static void fadeViewVisibility(FragmentActivity activity, int viewId, final boolean show) {
// Fade-in the progress spinner.
int shortAnimTime = activity.getResources().getInteger(
android.R.integer.config_shortAnimTime);
final View progressView = Ui.findView(activity, viewId);
progressView.setVisibility(View.VISIBLE);
progressView.animate()
.setDuration(shortAnimTime)
.alpha(show ? 1 : 0)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
progressView.setVisibility(show ? View.VISIBLE : View.GONE);
}
});
}
public AddressOfColdFragmentListAdapter(FragmentActivity activity,
List<Address> privates, ColdAddressFragmentHDMListItemView.RequestHDMServerQrCodeDelegate requestHDMServerQrCodeDelegate) {
this.activity = activity;
this.privates = privates;
this.requestHDMServerQrCodeDelegate = requestHDMServerQrCodeDelegate;
if (AddressManager.getInstance().hasHDAccountCold()) {
hdAccountCold = AddressManager.getInstance().getHDAccountCold();
} else {
hdAccountCold = null;
}
if (AddressManager.getInstance().hasBitpieHDAccountCold()) {
bitpieHDAccountCold = AddressManager.getInstance().getBitpieHDAccountCold();
} else {
bitpieHDAccountCold = null;
}
if (EnterpriseHDMSeed.hasSeed()) {
enterpriseHDMSeed = EnterpriseHDMSeed.seed();
} else {
enterpriseHDMSeed = null;
}
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
if (savedInstanceState != null) {
isDarkTheme = savedInstanceState.getBoolean(SAVED_IS_DARK_THEME);
fileItem = savedInstanceState.getParcelable(SAVED_FILE_ITEM);
}
listener = (OnClickListener) getParentFragment();
AlertDialog.Builder builder;
if (isDarkTheme) {
builder = new AlertDialog.Builder(context, R.style.DarkDialogTheme);
} else {
builder = new AlertDialog.Builder(context);
}
LayoutInflater inflater = ((FragmentActivity)context).getLayoutInflater();
view = inflater.inflate(R.layout.dialog_open_as, null);
setListeners();
builder.setView(view);
return builder.create();
}
public RemoteDialog(@NonNull Context context) {
super(context, R.style.Dialog);
this.activity = (FragmentActivity) context;
setContentView(R.layout.dialog_remote);
ButterKnife.bind(this);
ipEditEt.setHint("IP地址");
portEditEt.setHint("端口");
authEditEt.setHint("API密钥(可为空)");
String remoteLoginData = AppConfig.getInstance().getRemoteLoginData();
if (!StringUtils.isEmpty(remoteLoginData)){
String[] loginData = remoteLoginData.split(";");
if (loginData.length != 3) return;
ipEditEt.setText(loginData[0]);
portEditEt.setText(loginData[1]);
authEditEt.setText(loginData[2].trim());
}
}
@Override
protected void onPostExecute(Result o) {
Context context=mContextWeakReference.get();
//如果启动绑定生命周期,则Activity被销毁时,不再回调
if(mAsyncTaskImpl.isBindLifeCycle()){
if (context != null) {
if(context instanceof FragmentActivity){
boolean isDestory=((FragmentActivity) context).getSupportFragmentManager().isDestroyed();
if(!isDestory){
mAsyncTaskImpl.onPostExecute(context,o);
}
}else{//其他类型不处理,如ApplicationContext
mAsyncTaskImpl.onPostExecute(context,o);
}
}
}else{
mAsyncTaskImpl.onPostExecute(context,o);
}
}
/**
* distribute the apps and refresh ListView
*
* @param context
* @param appsInfo
*/
private void initAppsAndRefreshUi(final FragmentActivity context, final List<AppInfoBean> appsInfo) {
// refresh ui need run on ui thread
// and remember the change data should'n in background thread
context.runOnUiThread(new Runnable() {
@Override
public void run() {
// clear data
apps.clear();
// distribute apps
AppLockDao dao = new AppLockDao(context);
for (AppInfoBean app : appsInfo) {
// if in locked list
if (isNeededApp(dao, app.getPackageName())) {
// add to locked list
apps.add(app);
}
}
// notify update ListView
adapter.notifyDataSetChanged();
// hide loading bar
pvLoading.setVisibility(View.GONE);
}
});
}
public void attachToActivity(FragmentActivity activity) {
mActivity = activity;
TypedArray a = activity.getTheme().obtainStyledAttributes(new int[]{
android.R.attr.windowBackground
});
int background = a.getResourceId(0, 0);
a.recycle();
ViewGroup decor = (ViewGroup) activity.getWindow().getDecorView();
ViewGroup decorChild = (ViewGroup) decor.getChildAt(0);
decorChild.setBackgroundResource(background);
decor.removeView(decorChild);
addView(decorChild);
setContentView(decorChild);
decor.addView(this);
}
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
FragmentActivity a = getActivity();
if (a != null) {
a.finish();
}
}
private void unregisterFragmentLifecycleListener(final Activity context) {
FragmentLifecycleListener listener = listenerMap.get(context);
if (listener != null) {
((FragmentActivity)context).getSupportFragmentManager().unregisterFragmentLifecycleCallbacks(listener);
listenerMap.remove(context);
}
}
/**
* 拆红包方法
*
* @param activity FragmentActivity(由于使用了DialogFragment,这个参数类型必须为FragmentActivity)
* @param chatType 聊天类型
* @param redPacketId 红包id
* @param redPacketType 红包类型
* @param receiverId 接收者id
* @param messageDirect 消息的方向
*/
public static void openRedPacket(final FragmentActivity activity, final int chatType, String redPacketId, String redPacketType, String receiverId, String messageDirect) {
final ProgressDialog progressDialog = new ProgressDialog(activity);
progressDialog.setCanceledOnTouchOutside(false);
RedPacketInfo redPacketInfo = new RedPacketInfo();
redPacketInfo.redPacketId = redPacketId;
redPacketInfo.messageDirect = messageDirect;
redPacketInfo.chatType = chatType;
RPRedPacketUtil.getInstance().openRedPacket(redPacketInfo, activity, new RPRedPacketUtil.RPOpenPacketCallback() {
@Override
public void onSuccess(String senderId, String senderNickname, String myAmount) {
//领取红包成功 发送回执消息到聊天窗口
Toast.makeText(activity, "拆红包成功,红包金额" + myAmount + "元", Toast.LENGTH_LONG).show();
}
@Override
public void showLoading() {
progressDialog.show();
}
@Override
public void hideLoading() {
progressDialog.dismiss();
}
@Override
public void onError(String code, String message) {
Toast.makeText(activity, message, Toast.LENGTH_SHORT).show();
}
});
}
public static void saveImage(FragmentActivity activity) {
View view = activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());
view.setDrawingCacheEnabled(false);
new SaveScreenShotAsyncTask().execute(bitmap);
}
private void onCompleteWebFallbackDialog(Bundle values) {
FragmentActivity fragmentActivity = getActivity();
Intent resultIntent = new Intent();
resultIntent.putExtras(values == null ? new Bundle() : values);
fragmentActivity.setResult(Activity.RESULT_OK, resultIntent);
fragmentActivity.finish();
}
public static void startPicChoiceIntent(FragmentActivity activity,int imageview_id) {
// TODO Auto-generated method stub
Intent intent = new Intent();
/* 开启Pictures画面Type设定为image */
intent.setType("image/*");
/* 使用Intent.ACTION_GET_CONTENT这个Action */
intent.setAction(Intent.ACTION_GET_CONTENT);
/* 取得相片后返回本画面 */
activity.startActivityForResult(intent, imageview_id);//requestCode
}
/**
* 回复主题
*
* @param activity
* @param fid:用户在哪个板块回复帖子或主题
* @param subject:主题标题
* @param attaches:本次回复内容携带一个附件,附件ID为109
* @param message:主题内容
*/
public static void newThread(FragmentActivity activity, String fid, String typeid, String subject,
String message, Object attaches, HttpCallback callback) {
ZogUtils.printError(ThreadHttp.class, "newThread:::::" + message);
final ClanHttpParams params = new ClanHttpParams(activity);
params.setTimeout(60 * 1000);
params.addQueryStringParameter("fid", fid);
params.addQueryStringParameter("module", "newthread");
params.addQueryStringParameter("topicsubmit", "yes");
if (!StringUtils.isEmptyOrNullOrNullStr(ClanBaseUtils.getFormhash(activity)))
params.addBodyParameter("formhash", ClanBaseUtils.getFormhash(activity));
params.addBodyParameter("wysiwyg", "1");
params.addBodyParameter("allownoticeauthor", "1");
if (!TextUtils.isEmpty(typeid)) {
params.addBodyParameter("typeid", typeid);
}
params.addBodyParameter("subject", subject);
params.addBodyParameter("message", message);
setAttaches(params, attaches);
BaseHttp.post(Url.DOMAIN, params, callback);
}
public static void closedialog(FragmentActivity context, String dialogTag) {
FragmentManager fm = context.getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
Fragment prev = fm.findFragmentByTag(dialogTag);
if (prev != null) {
ft.remove(prev);
}
try {
ft.commit();
} catch (Exception e) {
}
}
@Override
public void onTabUnselected(android.app.ActionBar.Tab tab, android.app.FragmentTransaction ft) {
if (mListener != null) {
FragmentTransaction trans = null;
if (mActivity instanceof FragmentActivity) {
trans = ((FragmentActivity)mActivity).getSupportFragmentManager().beginTransaction()
.disallowAddToBackStack();
mFragmentTransaction = trans;
}
mListener.onTabUnselected(this, trans);
}
}
public static void open(FragmentActivity activity, boolean addToBackStack, String name) {
Fragment fragment = new BreadcrumbFragment();
FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
ft.replace(R.id.main_content, fragment);
if (addToBackStack) {
ft.addToBackStack(null);
}
if (name != null) {
Bundle bundle = new Bundle();
bundle.putString(FRAGMENT_NAME_TAG, name);
fragment.setArguments(bundle);
}
ft.commit();
}
/**
* 获取当前Activity实例
*/
public static FragmentActivity getCurrentActivity() {
if (sActivityRef != null && sActivityRef.get() != null) {
return sActivityRef.get();
} else {
return null;
}
}
public static DataBetter dataselectbetterone(String js, String from,
FragmentActivity context) {
DataBetter databetter = new DataBetter();
if (StringUtil.isEmpty(js)) {
databetter.errorcode = 1;
return databetter;
}
try {
VideoDetialData[] jsondata = VideoParseJson.parseRead(js);
if (FunctionUtil.isjsondataempty(jsondata)) {
databetter.errorcode = 2;
return databetter;
}
String title = jsondata[0].title;
String sitename = jsondata[0].site;
title = FunctionUtil.videotitle(title, sitename, from);
String url = videorealurl(jsondata, from, context);
if (StringUtil.isEmpty(url)) {
databetter.errorcode = 2;
return databetter;
} else {
databetter.errorcode = -1;
databetter.title = title;
databetter.url = url;
return databetter;
}
} catch (Exception e) {
databetter.errorcode = 2;
return databetter;
}
}
public MessageInputToolBox(Context context) {
super(context);
this.context = context;
FragmentActivity fragmentActivity = (FragmentActivity) context;
this.fragmentManager = fragmentActivity.getSupportFragmentManager();
LayoutInflater.from(context).inflate(R.layout.message_input_tool_box, this);
}
private static void onLoginSuccess(Context context, String uid, String username, ProfileJson json) {
AppSPUtils.setLoginInfo(context, true, uid, username);
Intent intent = new Intent();
intent.putExtra(Key.KEY_LOGINED, true);
intent.putExtra(Key.KEY_LOGIN_RESULT, json);
((FragmentActivity) context).setResult(ResultCode.RESULT_CODE_LOGIN, intent);
ActivityManager.getInstance().popActivity(LoginActivity.class);
((FragmentActivity) context).finish();
}
@Override
public void showWait(String message, boolean canBack, int flag) {
FragmentActivity activity = getActivity();
if (activity == null) {
return;
}
if (!(activity instanceof IMvpView)) {
return;
}
IMvpView iMvpView = (IMvpView) activity;
iMvpView.showWait(message, canBack, flag);
}
public static void addToActivity(Activity activity, Fragment fragment, String tag) {
if (activity instanceof FragmentActivity) {
FragmentActivity fragmentActivity = (FragmentActivity) activity;
fragmentActivity.getSupportFragmentManager().beginTransaction()
.add(fragment, tag)
.commit();
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mVideoAdapter = new VideoListAdapter(this);
if (savedInstanceState != null)
setGroup(savedInstanceState.getString(KEY_GROUP));
/* Load the thumbnailer */
FragmentActivity activity = getActivity();
if (activity != null)
mThumbnailer = new Thumbnailer(activity, activity.getWindowManager().getDefaultDisplay());
}
public FragmentHandlerManager(FragmentActivity context, Fragment parentFragment) {
if (context == null) {
return;
}
this.context = context;
this.parentFragment = parentFragment;
}
@Override
public void onAttach(Activity activity)
{
super.onAttach(activity);
this.activity = (FragmentActivity) activity;
}
private void share() {
// 获取歌曲播放链接
OnLineMusicModel model = OnLineMusicModel.getInstance();
model.getMusicDownloadInfo(OnLineMusicModel.METHOD_DOWNLOAD_MUSIC,mSongId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<DownloadInfo>() {
@Override
public void accept(DownloadInfo downloadInfo) throws Exception {
if (downloadInfo == null || downloadInfo.getBitrate() == null) {
onExecuteFail(null);
return;
}
String file_link = downloadInfo.getBitrate().getFile_link();
onExecuteSuccess(null);
ShareDetailBean shareDetailBean = new ShareDetailBean();
shareDetailBean.setShareType(ShareComment.ShareType.SHARE_GOODS);
shareDetailBean.setContent("歌曲分享");
shareDetailBean.setTitle(mTitle);
shareDetailBean.setImage(mImage);
shareDetailBean.setUrl(file_link);
ShareDialog shareDialog = new ShareDialog(mContext,shareDetailBean);
shareDialog.show(((FragmentActivity)mContext).getSupportFragmentManager());
/*Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, mContext.getString(R.string.share_music,
mContext.getString(R.string.app_name), mTitle,
file_link));
mContext.startActivity(Intent.createChooser(intent,
mContext.getString(R.string.share)));*/
}
});
}
/**
* 登录用户是否是uid用户
*
* @return
*/
public static boolean isOwner(FragmentActivity context, String uid) {
ClanApplication mApplication = (ClanApplication) context.getApplication();
if (AppSPUtils.getUid(context).equals(uid)) {
return true;
}
return false;
}