2014-03-06 33 views
1

我如何使用广播接收器来启动/午餐片段 例如: 如果我需要开始/ luanch活动,我可以用意图我怎么能在广播接收器发射片段

public void onReceive(final Context context, Intent intent) { 

    this.context = context; 
    this.intent = intent; 

    try { 
     Bundle bundle = intent.getExtras(); 

     int messageID = bundle.getInt("id"); 

     intent = new Intent(context, GetAlarm.class); 

     intent.putExtra("id",messageID); 

     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(intent); 

    } catch (Exception e) { 
     Toast.makeText(context, "There was an error ", Toast.LENGTH_SHORT) 
       .show(); 
     e.printStackTrace(); 
    } 
} 

,但我不知道有关片段

回答

5

您必须luanch意图和putexterasendactivity。 然后,您可以从活动中启动片段。

3

片段如何活动的一部分。没有活动您无法单独启动片段。您可以启动活动片段

一种方法是在活动创建广播接收器内部类推出片段

0

这是行不通的吗?把这个在您的广播接收器:

activityIntent = new Intent(context, MainActivity.class); 
activityIntent.putExtra("fragment", "fragment2"); 
activityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(activityIntent); 

和码下方用来设置你的片段寻呼机适配器

Bundle bundle = getIntent().getExtras(); 
if (bundle != null) { 
    if (bundle.getString("fragment") != null) { 
     /*Log.w(getClass().toString(), bundle.getString("fragment"));*/ 
     viewPager.setCurrentItem(2); 
    } 
} 

此代码通常是以下这样的:

 final ViewPager viewPager = (ViewPager) findViewById(R.id.pager); 
     final PagerAdapter adapter = new FragmentPagerAdapter 
       (getSupportFragmentManager(), tabLayout.getTabCount()); 
     viewPager.setAdapter(adapter); 
     viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); 
     tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
      @Override 
      public void onTabSelected(TabLayout.Tab tab) { 
       viewPager.setCurrentItem(tab.getPosition()); 
      } 

      @Override 
      public void onTabUnselected(TabLayout.Tab tab) { 

      } 

      @Override 
      public void onTabReselected(TabLayout.Tab tab) { 

      } 

     }); 

只要确保它位于设置适配器的位置之下,而不仅仅是您的viewpager,否则您将无法通过v导航到任何碎片iewpager。