Java-Android,来自单独类的Access Fragment方法

Java-Android,来自单独类的Access Fragment方法,第1张

概述我有一个片段:publicclassCustomFragextendsFragment{...publicvoidrefreshList(){...}}我有一个单独的班级:publicclassSomeClass{...}我试图从SomeClass调用refreshList():StringtagName="android:switcher:"+R.id.pager+&quo

我有一个片段:

public class CustomFrag extends Fragment{    ...    public voID refreshList(){        ...    }}

我有一个单独的班级:

public class SomeClass{    ...}

我试图从SomeClass调用refreshList():

String tagname = "androID:switcher:" + R.ID.pager + ":" + 1;CustomFrag f2 = (CustomFrag)getActivity().getSupportFragmentManager().findFragmentByTag(tagname);f2.refreshList();

但这表明无法解析方法“ getActivity”.如果我添加到班级:

extends Fragment

所有警告都消失了,但应用程序崩溃了,CustomFrag f2 =(CustomFrag)…行的指针为空.

我还有另一个片段,包含在与CustomFrag相同的父对象中,上面描述的方法调用效果很好.

如何从SomeClass访问CustomFrag方法?这个问题(和类似的问题)被问到了,但是大多数都没有被接受的答案,或者有非常模糊的问题,没有什么帮助.

提前致谢.

编辑:临时解决方案

我从上述两个片段中调用属于SomeClass的方法.我想到的是以下内容:

在FragOne内

public class FragOne extends Fragment{    ...    String tagname = "androID:switcher:" + R.ID.pager + ":" + 1;    CustomFrag f2 = (CustomFrag)getActivity().getSupportFragmentManager().findFragmentByTag(tagname);}

接着:

public class FragOne extends Fragment{    ...    String tagname = "androID:switcher:" + R.ID.pager + ":" + 1;    CustomFrag f2 = (CustomFrag)getActivity().getSupportFragmentManager().findFragmentByTag(tagname);    SomeClass obj = new SomeClass(...);    obj.someMethod(f2);}

然后可以使用someMethod

f2.refreshList();

这解决了我一直遇到的问题,但是很高兴知道通过单独的类访问Fragment方法的更直接方法.

欢迎进一步解决该问题的答案,并将其作为解决方案.

解决方法:

HomeFragment.java

public class HomeFragment extends Fragment {    private static HomeFragment instance;    @Nullable    @OverrIDe    public VIEw onCreateVIEw(@NonNull LayoutInflater inflater, @Nullable VIEwGroup container, @Nullable Bundle savedInstanceState) {        VIEw vIEw = inflater.inflate(R.layout.fragment_home, container, false);        instance = this;        return vIEw;    }    public static HomeFragment getInstance() {        return instance;    }    public voID myMethod() {        // do something...    }}

AnotherClass.java

public Class AnotherClass() {     // call this method     HomeFragment.getInstance().myMethod();}
总结

以上是内存溢出为你收集整理的Java-Android,来自单独类的Access Fragment方法全部内容,希望文章能够帮你解决Java-Android,来自单独类的Access Fragment方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存