-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>

相关问题