如何将片段活动作为片段调用?
问题描述:
我在我的主要活动中有一个导航抽屉。现在我需要调用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();
}
}
答
FeedListActivity是片段的活性。 现在我需要在我的主 活动中添加Feedlistactivity作为片段。我怎样才能做到这一点?
fragmentActivity不是片段。这是一个支持片段的活动,它是为了让老版本的android构建向后兼容片段而引入的 - 如果你只针对新API,你可以忽略它。为了使FeedListActivity()成为一个片段......您必须从片段中扩展。
Fragment newFragment = new Fragment();
这条线在这里应该创造FeedList的新实例,你让后一个片段。
为什么你不从片段扩展你的类? – 2014-11-09 06:28:27