2015-10-30 4 views
1

Я попытался добавить фрагмент в действие нажатия кнопки внутри адаптера, который расширяет BaseAdapter. Но для использования фрагментов класс должен расширить фрагмент, чтобы использовать FragmentManager. Я импортировал:Пытается добавить фрагмент внутри адаптера

import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentTransaction; 

Но до сих пор сталкивается здесь ошибку:

FragmentManager fragmentManager=getFragmentManager(); 

Я также попытался дать ссылку активности при получении FragmentManager, он дал больше ошибок.

Любая помощь будет высоко оценена. Спасибо заранее.

Вот мой адаптер код: Выдвижные элемент (вид) OnClick действие:

view.setOnClickListener(new OnClickListener() { 

        @Override 
        public void onClick(View v) { 
         // TODO Auto-generated method stub 
         if (position == 1)// Home 
         { 


         Home2Fragment fragment = new Home2Fragment(); 
          FragmentManager fragmentManager=getFragmentManager(); 
          FragmentTransaction fragmentTransaction = fragmentManager 
            .beginTransaction(); 
          fragmentTransaction.add(fragment, null); 
          fragmentTransaction.commit(); 

         } 

        } 
       }); 

ответ

2

Поскольку импортировать фрагменты из библиотеки поддержки так, используйте getSupportFragmentManager метод, чтобы получить FragmentManager:

FragmentManager fragmentManager=<Activity_Context>.getSupportFragmentManager(); 

нужно используйте контекст FragmentActivity для доступа FragmentManager, а также убедитесь, что расширение FragmentActivity вместо Activity.

+0

Пробовал, что тоже .. все не работает. Спасибо за ответ. –

+0

@VinayPandravada: см. Мой ответ –

+0

@ ρяσѕρєя K: попробовал дать это тоже бросить..просил изменить свой фрагмент на android.app.fragment, который влияет на мой код ниже –

0

Считается хорошей практикой использовать let Adapters как внутренний класс списка, который их использует. Это дает адаптеру полный доступ к классу, используя их, и если это фрагмент, вы можете использовать диспетчер фрагментов.

Смежные вопросы