如何将片段活动作为片段调用?

问题描述:

我在我的主要活动中有一个导航抽屉。现在我需要调用onNavigationDrawerItemSelected方法中的所有片段。但奇怪的是,我没有片段,所有我都有活动。所以我扩展它与Fragment Activity如何将片段活动作为片段调用?

MainActivity是导航的抽屉活动。

FeedListActivity是片段活动。

现在我需要在我的主要活动中添加Feedlistactivity作为片段。我怎样才能做到这一点?

我看到很多问题都与此相关。但我无法与我联系。

主要活动

public class MainActivity extends ActionBarActivity implements NavigationDrawerCallbacks{ 

     private Toolbar mToolbar; 
     private NavigationDrawerFragment mNavigationDrawerFragment; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      mToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar); 
      setSupportActionBar(mToolbar); 
      getSupportActionBar().setDisplayShowHomeEnabled(true); 
      mNavigationDrawerFragment = (NavigationDrawerFragment) getFragmentManager().findFragmentById(R.id.fragment_drawer); 
      mNavigationDrawerFragment.setup(R.id.fragment_drawer, (DrawerLayout) findViewById(R.id.drawer), mToolbar); 
     } 

     @Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
      getMenuInflater().inflate(R.menu.menu_main, menu); 
      return super.onCreateOptionsMenu(menu); 
     } 

     @Override 
     public void onNavigationDrawerItemSelected(int position) { 
      if (position == 1){ 
       Fragment newFragment = new Fragment(); 
       FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
       transaction.replace(R.id.container, newFragment); 
       transaction.commit();  
      } 
     } 
    } 

FeedListActivity

public class FeedListActivity extends FragmentActivity{ 

    private Toolbar mToolbar; 
    private NavigationDrawerFragment mNavigationDrawerFragment; 
    private static final String TAG = "FeedListActivity"; 

    private ListView NewsView; 
    private FeedListAdapter listAdapter; 
    private List<FeedItem> feedItems; 
    ProgressBarCircularIndetermininate progressBar; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_feed_list); 
     mToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar); 
     progressBar = (ProgressBarCircularIndetermininate) findViewById(R.id.progressBar); 
     progressBar.setVisibility(View.VISIBLE); 
     mNavigationDrawerFragment = (NavigationDrawerFragment) getFragmentManager().findFragmentById(R.id.fragment_drawer); 
     mNavigationDrawerFragment.setup(R.id.fragment_drawer, (DrawerLayout) findViewById(R.id.drawer), mToolbar); 
     feedItems = new ArrayList<FeedItem>(); 
     listAdapter = new FeedListAdapter(this, feedItems); 
     NewsView = (ListView) findViewById(R.id.feed_list); 
     NewsView.setAdapter(listAdapter); 

     // making fresh volley request and getting json 

     // Adding request to volley request queue 
     AppController.getInstance().addRequest(gsonRequest, TAG); 
     getimg(); 
    } 
} 
+0

为什么你不从片段扩展你的类? – 2014-11-09 06:28:27

FeedListActivity是片段的活性。 现在我需要在我的主 活动中添加Feedlistactivity作为片段。我怎样才能做到这一点?

fragmentActivity不是片段。这是一个支持片段的活动,它是为了让老版本的android构建向后兼容片段而引入的 - 如果你只针对新API,你可以忽略它。为了使FeedListActivity()成为一个片段......您必须从片段中扩展。

Fragment newFragment = new Fragment(); 

这条线在这里应该创造FeedList的新实例,你让后一个片段。