2015-03-15 2 views
0

Я расширил фрагмент с именем DetailFragment из домашней активности. Но я не могу получить доступ к функциям активности в классе фрагментов, например анимации, tablayout и любых других функциях, которые я делал в деятельности. Но когда я изменить фрагмент на активность фрагментов, каждая ошибка очищается, но мне нужен только фрагмент.Android устал с фрагментом

Вот мой код

 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

'Метрика загрузки метода не применима для DetailFragment', но ошибка становится очищенной, когда я изменяю расширение фрагмента, чтобы продлить действие. –

ответ

0

На самом деле то, что вам нужно сделать, это: вы должны заменить все «это» с «getActivity()»

В деятельности класса указывающей на «это» означает указание на контекст активности.

Но поскольку ваш фрагмент представляет собой не что иное, как часть контейнера родительской деятельности. В фрагменте, если вы сохраните «это», он укажет на контекст фрагмента (не указывает на родительскую активность). вот почему вы получаете ошибку.

Ваша проблема должна быть решена:

Animation animationFadeIn = AnimationUtils.loadAnimation(getActivity(),R.anim.fadein); 
      Animation animationFadeOut = AnimationUtils.loadAnimation(getActivity(),R.anim.fadeout); 
+0

ОК спасибо, я сделаю это –

0

Но я не могу получить доступ к функциям деятельности в классе фрагментов, например анимации, tablayout и любых других функциях, которые я делал в действии. Вы можете метод деятельности с использованием getActivity() метода

((MyActivityClassName)getActivity()).myPublicMethod(); 
+0

Извините .. вопрос не в том, что я не хочу получить доступ к любому методу из activity.i хочу также получить все возможности активности в фрагменте. –

+0

bcoz вся ошибка возникает, когда изменение расширяет фрагмент до продолжения активности. Но здесь мне нужно использовать фрагмент. –