我扩展了一个名为' DetailFragment'但是我无法访问片段类中的活动功能,比如动画,tablayout以及我在activity中执行的任何其他功能。但是当我将片段更改为片段活动时,每个错误都被清除,但我只需要片段。
这是我的代码
public class DetailFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle args) {
View view = inflater.inflate(R.layout.activity_detail, container, false);
收到错误@' loadanimation'
Animation animationFadeIn = AnimationUtils.loadAnimation(this,R.anim.fadein);
Animation animationFadeOut = AnimationUtils.loadAnimation(this,R.anim.fadeout);
获取错误@' onTouchEvent'
public boolean onTouchEvent(MotionEvent event) {
mGestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
return view;
}
}
我需要知道是否可以处理片段,就像我们处理活动一样,或者是否有任何函数,例如' getActivity'访问活动类的方法,以及我如何实现它。这够了。提前谢谢程序员..
答案 0 :(得分:0)
但我无法访问片段类中的活动函数,如动画,tablayout以及我在活动中执行的任何其他功能。 您可以使用
进行活动方法getActivity()
方法
((MyActivityClassName)getActivity()).myPublicMethod();
答案 1 :(得分:0)
实际上你要做的是: 你必须用“getActivity()”
替换所有“this”在指向“this”的活动类中,表示指向活动的上下文。
但是,因为你的片段只是父活动容器的一部分。在片段中,如果你保留“this”,它将指向片段的上下文(不指向父活动)。这就是为什么你会收到错误。
您的问题应该通过以下方式解决:
Animation animationFadeIn = AnimationUtils.loadAnimation(getActivity(),R.anim.fadein);
Animation animationFadeOut = AnimationUtils.loadAnimation(getActivity(),R.anim.fadeout);