-6

我以前問一個問題,在堆棧這個,這是一個持續的,因爲它在片段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(); 
       } 
     } 

我在底座適配器級呼叫

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。不,不是。我在談論OP的第一個問題。 –

+1

@MikeM。現在你明白了我的觀點....快點!!!!!!! –

回答

0

無需註冊片段插入清單

你可以像這樣

private ScreenTimeOutReceiver mScreenTimeOutReceiver; 

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

我有一個片段 –

+0

內的廣播接收機比註冊接收機只 –

+0

如何註冊?我用下面的事情清單文件註冊<接收器的android:NAME =「我應該寫在這裏?」> < intent-filter>

相關問題