如何在Fragment中使用findViewById

如何在Fragment中使用findViewById,第1张

使用getView()方法就OK了,因为这个方法最终会返回当前fragment的根视图。

Button btn = (Button) getView()findViewById(Ridbtn);

但是你应该知道要在此之前使用onCreateView来创建视图吧。

@Nullable

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

return inflaterinflate(Rlayoutfragment, null);

}

而如果你用inflate方法自己实例化一个view,比如这样:

@Nullable

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

View view = inflaterinflate(Rlayoutfragment, container, false);

}

那么就不是再继续使用getView()了,取而代之的是:

Button btn = (Button) viewfindViewById(Ridbtn);

这里的view就是之前实例化的View对象了。

1 如何在acitivty中执行fragment中的方法:

首先获得这个Fragment的对象

xxxFragment fragmentObject = (xxxFragment) getFragmentManagerfindFragmentByTag("xx");

2 如何在Fragment中执行activity中的方法:

第一种:让acitivity继承接口

第二种:在fragment中使用getActivity()但是要加上acitivity的名字,即:

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

3 如果在fragment中要 *** 作一个fragment,首要要得到这个对象,如何得到?使用getActivity中的FragmentMnager的getFragmentByTag,然后就可以使用这个fragment的对象来 *** 作他的方法了。

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

FragmentManager fm = getActivitygetSupportFragmentManager();

xxxFragment = (xxxFragment)fmfindFragmentByTag("xxx")

4 如何在任意类中 *** 作一个fragment,首先要得到环境参数,如何得到?

在activity中:

private static WeakReference<ActionButtonActivity> actionButtonActivty = null;

actionButtonActivty = new WeakReference<ActionButtonActivity>(this);

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

asyncTasksetActivity(actionButtonActivty);

在任意类中:

private static WeakReference<ActionButtonActivity> actionButtonActivty;

public void setActivity(

WeakReference<ActionButtonActivity> actionButtonActivty) {

thisactionButtonActivty = 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) {

superonPostExecute(result);

FragmentManager fm = actionButtonActivtyget()getFragmentManager();

FragmentTransaction ft = fmbeginTransaction();

BFragmentTab_one_event_details bt_det = (BFragmentTab_one_event_details) fm

findFragmentByTag("2_det");

bt_detsetEvidenceImage(result);

bt_detsetButtonClickable();

ftaddToBackStack(null)commit();

}

以上就是关于如何在Fragment中使用findViewById全部的内容,包括:如何在Fragment中使用findViewById、如何在一个fragment or 任意类中 *** 作另一个fragment中的方法、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9823191.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存