首先在Activity中实例化Fragment
ExampleFragment exFragment = (Fragment)getFragmentManager()findFragmentById(fragmentID);
然后获取Fragment中的控件
TextView tv =(TextView) exFragmentgetView()findViewById(tvID);
```
这样就OK了
有时候我们想要 *** 控viewpager中获取焦点的fragment的控件,但是并没有getCurrentFragment 等类似的方法,但是提供了setPrimaryItem方法,但是这个实在adapter里面的,所有我们像个办法让他把当前的fragment从adapter中传出来,那么就要重写fragmentpageradapter
重写Fragment的onAttach()@Override public void onAttach(Activity activity) { // TODO Auto-generated method stub superonAttach(activity); //获取activity根视图,rootView设为全局变量 rootView=activitygetWindow()getDecorView(); }之后 把你上面的代码 RadioButton radioButton01 = (RadioButton)activityfindViewById(RidradioButton01);改为 RadioButton radioButton01 = (RadioButton)rootViewfindViewById(RidradioButton01);有些方法都忘得差不多了 查看更多答案>>
在构造方法,或者set方法等注入fragment,类似很多自定义控件使用Context一样。
可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity运行的时候可以加载或者移除Fragment模块。
使用Fragment时,需要继承Fragment或者Fragment的子类(DialogFragment, ListFragment, PreferenceFragment, WebViewFragment)。
一、使用Fragment获取控件Id
我是在MainActivity中通过Fragment的事务管理把各个fragment添加到MainActivity中的,但是MainActivity中并没有很多控件,控件大都在各个fragment的布局里面,所以如何在fragmen中获取控件Id是一件非常重要的事!话不多说直接上代码!
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View messageLayout=inflaterinflate(Rlayoutmessage_layout,container,false); inspect= (TextView) messageLayoutfindViewById(Ridinspect); inspectsetOnClickListener(new ViewOnClickListener() {
在OncreatView方法中,先是通过View方法把布局加载到fragmnet中,然后在使用加载的布局中的findViewById的方法找到控件,这和之前的用法是不一样的,之前是直接findViewById。
二、如何在fragment中跳转Activity
话不多话,直接上代码!
Intent intent=new Intent(getActivity(),InspectActivityclass);startActivity(intent);
与平常跳转不同的地方在于这里是:
new Intent(getActivity(),InspectActivityclass);
以上就是关于android activity中怎么调用fragment中的控件全部的内容,包括:android activity中怎么调用fragment中的控件、怎么在viewpager中获取子fragment里面的控件、Fragment 包在viewpager中怎么获取activity中的控件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)