-6

Я уже задавал вопрос в стеке для этого, и это продолжается один для егоРегистрация Broadcast приемник Фрагмент PageViewer

Предыдущий вопрос

Calling Fragment from inside the BaseAdapter class in PageViewer Android

Теперь нажмите на кнопку .. это идет, чтобы зарегистрироваться, но может показаться, что вызывается Фрагмент. Мне кажется, мне нужно зарегистрироваться.

Как я могу это сделать в файле манифеста для фрагмента Ниже приведен код для вещательного приемника называется в Adapterclass

код в классе Фрагмент и это mBroadcastReceiver передается BaseAdapter класса

mBroadcastReceiver = new BroadcastReceiver() { 
       @Override 
       public void onReceive(Context context, Intent intent) { 
        Toast.makeText(context, "Recived", 
           Toast.LENGTH_LONG).show(); 
        FieldVisitFragment fieldvisitFragment = new FieldVisitFragment(); 
        FragmentManager fragmentManager = getFragmentManager(); 
        FragmentTransaction fragmentTransaction = fragmentManager 
          .beginTransaction(); 
        fragmentTransaction.replace(android.R.id.tabcontent, fieldvisitFragment); 
        fragmentTransaction.commit(); 
       } 

OnClick из в списке из класса адаптера

Я добавил код внутри класса BaseAdapter

visitImg.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       Toast.makeText(con, "Visit Clicked ", Toast.LENGTH_LONG).show(); 
       con.registerReceiver(mBroadcastReceiver, new IntentFilter(
         "start.fragment.action")); 
      } 
     }); 

Для регистрации в файле манифеста

<receiver android:name="what should I write here ???"> 
      <intent-filter> 
       <action android:name="start.fragment.action"/> 
      </intent-filter> 
     </receiver> 

изменения, сделанные после того, как видел в ответ, но до сих пор не работает

файл манифеста

<receiver android:name="companyname.appname.fragments.FragmentClassName$BroadT"> 
     <intent-filter> 
      <action android:name="start.fragment.action"/> 
     </intent-filter> 
    </receiver> 

класс BroadT который определен внутри класса фрагмента

public class FragmentClassName extends Fragment 

BroadT класс

class BroadT extends BroadcastReceiver 
     { 
      @Override 
       public void onReceive(Context context, Intent intent) { 
        Toast.makeText(context, "Recived", 
           Toast.LENGTH_LONG).show(); 
        FieldVisitFragment fieldvisitFragment = new FieldVisitFragment(); 
        FragmentManager fragmentManager = getFragmentManager(); 
        FragmentTransaction fragmentTransaction = fragmentManager 
          .beginTransaction(); 
        fragmentTransaction.replace(android.R.id.tabcontent, fieldvisitFragment); 
        fragmentTransaction.commit(); 
       } 
     } 

Мой вызов в классе Base Adapter

public void onClick(View arg0) { 
       Toast.makeText(con, "Visit Clicked ", Toast.LENGTH_LONG).show(); 
       con.registerReceiver(mBroadcastReceiver, new IntentFilter(
         "start.fragment.action")); 
      } 

Но мой <receiver android:name="packagename.BroadT"> BroadT класс, кажется, не ссылаются на вызвать класс

Я чувствую, что нужно использовать вложенными ФРАГМЕНТЫ Кто-нибудь может помочь?

+1

Первого принимают уже задал вопрос, а затем задать новый вопрос. –

+0

@MikeM. Нет. Это не так. Я говорю о первом вопросе ФП. –

+1

@MikeM. Теперь ты получишь мою ТОЧКУ .... Спешите !!!!!!! –

ответ

0

Нет необходимости регистрировать фрагмент в манифесте

вы можете зарегистрировать приемник от фрагмента, как таким образом

private ScreenTimeOutReceiver mScreenTimeOutReceiver; 

    mScreenTimeOutReceiver = new ScreenTimeOutReceiver(); 
    registerReceiver(mScreenTimeOutReceiver, filter); 
+0

У меня есть широковещательный приемник внутри фрагмента –

+0

чем то, что? Регистрировать только приемник –

+0

Как зарегистрироваться ... Я использовал ниже в файле манифеста, чтобы зарегистрировать < фильтр цели>

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