怎么调用fragment的private方法

如题所述

怎么在一个fragment or 任意类中操作另一个fragment中的方法
www.MyException.Cn 网友分享于:2014-04-20 浏览:100次

如何在一个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();

}
温馨提示:内容为网友见解,仅供参考
无其他回答

如何在一个fragment or 任意类中操作另一个fragment中的方法
第一种:让acitivity继承接口 第二种:在fragment中使用getActivity()但是要加上acitivity的名字,即:((MainActivity)getActivity()).xxx();3 如果在fragment中要操作一个fragment,首要要得到这个对象,如何得到?使用getActivity中的FragmentMnager的getFragmentByTag,然后就可以使用这个fragment的对象来操作他...

Android,两个Fragment之间怎么用Argument传值
1、Activity定义public class Act extends Activity{ private Fragment f1=null; private Fragment f2=null; public interface MyCallBack{\/\/定义回调接口 void callBack(String param);\/\/回调方法 } public void onCreate(Bundle bd){ super.onCreate(bd); f1 = (Fragment)f...

android fragment带参数跳转
fragment带参数跳转:在Activity中定义一个字段、然后添加set和get方法、代码如下(mTitle就是要传递的参数、如果是传递对象、可以把mTitle换成一个对象即可):public class DemoActivity { private String mTitle;public String getmTitle() { return mTitle;} public void setmTitle(String title) { this...

关于Android开发,fragment内的事件处理
通常地 fragment做为宿主activity UI的一部分, 被作为activity整个view hierarchy的一部分被嵌入.Button 的事件设置:Button buttontest;buttontest = (Button) findViewById(R.id.button1);buttontest.setOnClickListener(new View.OnClickListener() { Override public void onClick(View v) { \/\/ TOD...

关于android,用多个activity好,还是使用单activity配合fragment更
很简单,在add或者replace的时候,调用含有TAG参数的那个方法,之后再add相同TAG的Fragment的话,之前的会被替换掉,也就不会同时出现多个相同的Fragment了。publicclass WeatherFragment extends Fragment { \/\/ publicstatic final String TAG = WeatherFragment.class.getSimpleName();不过最大限度的重用,可以在...

...工程就会自动生成一个静态内部类fragment,怎样才能在静态内部类中...
静态内部类仅能直接访问外部类的静态成员。可以设置一个静态的上下文变量或返回上下文的静态方法,只要在获取前保证得到的上下文已经实例化就好了。举个例子:public class A extends Activity{ private static Context ct;public void onCreate(Bundle savedInstanceState){ super...ct = this;} public ...

FragmentTransaction的replace方法里面具体执行的是什么操作?
fragment, String tag) { if (containerViewId == 0) { throw new IllegalArgumentException("Must use non-zero containerViewId"); } doAddOp(containerViewId, fragment, tag, OP_REPLACE); return this;}2、add 和 replace 方法都是调用的 doAddOp 方法。也就是把一个...

Android中,Fragment类的setText()方法的作用是什么?
Private Sub text1_GotFocus(Index As Integer)Text1(Index).SelStart = 0 Text1(Index).SelLength = Len(Text1(Index).Text)End Sub 1: Seltext 的作用实际上Sel是指Select,这里VB简写了。意思是选中的字符串(文本)。2:Gettext 的作用是一个方法。Get就是“索取”的意思。即从剪贴板里...

android Fragment中怎么更新数据
public class Tab3 extends Fragment { Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){ return inflater.inflate(R.layout.tab3,null);} } 代码很简单,直接在oncreateView方法中使用布局填充器(LayoutInflater)填充一个View布局即可。布局如下:...

fragment监听返回键(webview回退上一个页面)
1、创建自定义接口类 public interface BackHandleInterface { void onSelectedFragment(BackHandleFragment backHandleFragment);} 2、创建一个自定义Fragment类 public abstract class BackHandleFragmentextends BaseFragment{ private BackHandleInterfacebackHandleInterface;    \/     ...

相似回答