Android累了片段

时间:2015-03-15 05:15:11

标签: android android-fragments

我扩展了一个名为' 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'访问活动类的方法,以及我如何实现它。这够了。提前谢谢程序员..

2 个答案:

答案 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);