安卓导航抽屉与活动实施 [英] Android Navigation Drawer implemented with Activities

查看:132
本文介绍了安卓导航抽屉与活动实施的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开发我自己的Andr​​oid应用程序,我来到一个地步,我有三个不同的活动,说活动A,活动B和活动C.我想现在要做的是创建一个导航抽屉它们之间进行切换。我读了Android开发者网站上的教程,但他们只专注于碎片。如何与使用片段的开发?如果没有,为什么没有记载如何实现正确的导航抽屉与活动呢?谢谢您的帮助,只有一个活动的专业开发Android应用程序以及所有其他屏幕。

I am developing my own Android Application and i came to a point where i have three different Activities say Activity A, Activity B and Activity C. What i want to do now is to create a Navigation Drawer to navigate between them. I read the tutorial on the Android Developers website but they only focused on Fragments. How are professional Android Applications developed only with one Activity and all the other screens are developed with the use of Fragments?If not why isn't documented how to implement correct the navigation drawer with Activities instead?Thank you for your help.

推荐答案

您需要创建一个基本活动这做所有常见的抽屉导航的东西。我将这个基地活动 DrawerActivity ,和所有其他活动应该扩展 DrawerActivity 。因此,所有的活动将有抽屉布局。一个实例

You need to create a Base activity which does all the common Drawer navigation stuff . I will call this base Activity as DrawerActivity , and all other Activity should extend this DrawerActivity . So all the Activity will have one instance of Drawer Layout.

创建一个共同的布局与 DrawerLayout 并放置一个的FrameLayout 的ListView 为孩子

Create a common Layout with DrawerLayout and place a FrameLayout and ListView as child

  <android.support.v4.widget.DrawerLayout>
   <FrameLayout
    android:id="@+id/activity_frame"/>
   <ListView
    android:id="@+id/left_drawer"/>
 </android.support.v4.widget.DrawerLayout>

现在的 DrawerActivity

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_drawer_layout);
   // do other stuff to initialize drawer layout, add list items
  ……… 
   ……….
  // add a listener to the drawer list view 
 mLeftDrawerList.setOnItemClickListener(new DrawerItemClickListener());

}

添加一个项目点击监听器

Add a item click listener

  private class DrawerItemClickListener implements ListView.OnItemClickListener {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
        switch (position) {
            case 0: {
                Intent intent = new Intent(DrawerActivity.this, YourActivity.class);
                startActivity(intent);
                break;
            }
            default:
                break;
        }
        mDrawerLayout.closeDrawer(mLeftDrawerList);
    }
}

最后,所有其他活动将扩展该 DrawerActivity

 public class MainActivity extends DrawerActivity {

   @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
   // don’t set any content view here, since its already set in DrawerActivity
   FrameLayout frameLayout = (FrameLayout)findViewById(R.id.activity_frame);
    // inflate the custom activity layout
    LayoutInflater layoutInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View activityView = layoutInflater.inflate(R.layout.activity_main, null,false);
    // add the custom layout of this activity to frame layout.
    frameLayout.addView(activityView);
    // now you can do all your other stuffs
    }
 }

您可以在这里看到完整的源 https://gist.github.com/libinbensin/613dea436302d3015563

You can see the complete source here https://gist.github.com/libinbensin/613dea436302d3015563

这篇关于安卓导航抽屉与活动实施的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆