怎样在一个fragment or 随意类中操作还有一个fragment中的方法

1 怎样在acitivty中运行fragment中的方法:

首先获得这个Fragment的对象

xxxFragment fragmentObject = (xxxFragment) getFragmentManager.findFragmentByTag("xx");

2 怎样在Fragment中运行activity中的方法:

第一种:让acitivity继承接口

另外一种:在fragment中使用getActivity()可是要加上acitivity的名字,即:

	((MainActivity)getActivity()).xxx();

3 假设在fragment中要操作一个fragment,首要要得到这个对象,怎样得到?使用getActivity中的FragmentMnager的getFragmentByTag,然后就能够使用这个fragment的对象来操作他的方法了。

当然获得这个Fragment的时候要转成这个Fragment的一个对象eg:

FragmentManager fm = getActivity.getSupportFragmentManager();
xxxFragment = (xxxFragment)fm.findFragmentByTag("xxx")

4 怎样在随意类中操作一个fragment,首先要得到环境參数,怎样得到?

在activity中:

	private static WeakReference<ActionButtonActivity> actionButtonActivty = null;
	actionButtonActivty = new WeakReference<ActionButtonActivity>(this);

从activity中将这个actionButtonActivity对象传递到这个随意类中

	asyncTask.setActivity(actionButtonActivty);

在随意类中:

	private static WeakReference<ActionButtonActivity> actionButtonActivty;
	public void setActivity(
			WeakReference<ActionButtonActivity> actionButtonActivty) {
		this.actionButtonActivty = actionButtonActivty;
	}
	/**
	 * this method is invoked on the UI thread after the background computation
	 * finishes. The result of the background computation is passed to this step
	 * as a parameter.
	 */
	@Override
	protected void onPostExecute(Bitmap result) {
		super.onPostExecute(result);

		FragmentManager fm = actionButtonActivty.get().getFragmentManager();
		FragmentTransaction ft = fm.beginTransaction();
		BFragmentTab_one_event_details bt_det = (BFragmentTab_one_event_details) fm
				.findFragmentByTag("2_det");
		bt_det.setEvidenceImage(result);
		bt_det.setButtonClickable();
		ft.addToBackStack(null).commit();

	}

OK 上面已经介绍了全部类和fragment之间的调用关系了。

时间: 2024-05-21 07:28:45

怎样在一个fragment or 随意类中操作还有一个fragment中的方法的相关文章

java中如何实现一个优美的equals方法

java中的任何类都从老祖宗Object中集成了equals方法,在编程实践中应用使用equals方法判断两个对象是否相同的场景无处不在,所以我们在实现自己的类是必须重写出一个优美的equals方法. 首先让我们来看看java语言规范中对equals方法的说明,一个equals方法应当满足如下几个特性: 自反性,对任何一个非空的引用x,x.equals(x)必须返回true: 对称性,对任何引用x和y来说,如果x.equals(y)返回true,那么y.equals(x)也必须返回true: 传

在32位PE文件中的任意一个节中添加代码

// SectionOp.cpp : 定义控制台应用程序的入口点. // /************************************************ *程序说明:在32位PE文件中的任意一个节中添加代码 *          第一个参数为PE文件 第二个参数为第N个节 * * 时间: 20170718 * Win10 VS2010 测试通过  ver 0.01 **************************************************/ #inc

[转载]android工程中引入另一个工程中的资源

原文地址:android工程中引入另一个工程中的资源作者:87fayuan 在项目中可能遇到这样的问题:项目过大,于是细分为N个子模块来做,每个模块都是不同的工程.涉及到activity传数据时,可以用intent等方法来解决.但是如果涉及到要共用资源,而又不能像传统java程序那样打成jar包,比如程序中有大量自定义view,而这些自定义view都引用了的一些资源文件时,就可以用这个方法. 工程一:MyViews 代码如下: public class MyTextView extends Te

android 在子线程中操作UI 导致Fragment显示空白问题

需求是这样的 当没网络的请求下就显示缓存中的数据,这样做是为了在没网的情况下 不至于界面什么都没有,给用户的体验效果不好,所以就加了个缓存机制,但是这个缓存的代码是我从上家公司拷贝过来的,没怎么仔细看,当在没网的情况下,出现切换tab页,fragment显示空白问题,连标题栏都显示不出来,   后来我就把缓存的那个 注释了  问题就好了,于是问题定位就是缓存这块了,找到问题就相当于问题解决了一半,然后发现那个回调是在子线程中的,而我在这个回调中操作了UI, 所以才会导致界面空白  在此记录下 版

iframe中操作主体页面的元素,方法

在不使用三大框架的情况下,iframe的使用可以做到在页面中直接引入别的页面作为当前页面的一部分,但是在iframe的使用过程中存在一些相互之间的操作 例如在iframe中获取主页面的元素,使用主页面的js中定义的方法 第一.在iframe中查找父页面元素的方法: $('#id', window.parent.document) 第二.在父页面中获取iframe中的元素方法: $(this).contents().find("#suggestBox") 第三.在iframe中调用父页面

bug日记之---------js中调用另一个js中的有ajax的方法, 返回值为undefind

今天做一个OCR授权的需求, 需要开发一个OCR弹框, 让用户选择是否授权给第三方识别公司(旷世科技)保存和识别用户个人信息, 照片等. 其中用到了在一个js的方法中调用另外一个js的方法, 其中有一点特别的是另外一个js的方法中会进行一个ajax, 会根据ajax返回的结果来进行返回true或者false. 在测试的过程中我发现不管怎么弄, 最后返回的都是undefind. 下面来模拟一下这个场景 上面这个例子中,flag一直都是undefind,ajax已经是同步的情况下依旧返回undefi

从一个字符串中删除另一个字符串中出现过的字符

定义一个函数,输入两个字符串,从第一个字符串中删除在第二个中出现过的所偶字符串.例如从第一个字符串"We are students."中删除第二个字符中"auiou"中出现过的字符得到的结果是"W r stdnts" 解题思路:利用哈希查找. #include <stdio.h> void deleteStr2FromStr1(char* str1, char* str2) { if(str1 == NULL || str2 == N

iOS:一个Cell中设置另外一个Cell中的button

场景: 子类化Cell中有button,拥有选中式样,点击第一个Cell中的button后,Cell一中的button获得选中式样,但是当点击Cell二中的button时,Cell一中的button选中式样依然存在,即同时存在两个选中的button. 解决方法: 在子类化的Cell中,定义一个 static UIButton *selectedButton; 必须是 static 静态变量. 然后在点击方法中, - (void)headerButtonClickAction:(UIButton

nginx集群中图片指定一个地址中

#user  nobody;worker_processes  1; #error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info; #pid        logs/nginx.pid; worker_rlimit_nofile 65535;events {    worker_connections  65535;} http {    include