Java-Android,来自单独类的Access Fragment方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java-Android,来自单独类的Access Fragment方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1997字,纯文字阅读大概需要3分钟。
内容图文
我有一个片段:
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方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。