Android导航抽屉基本活动可能与不同的项目?

时间:2015-07-20 15:59:18

标签: android

我在互联网上找到了很多关于如何为Android Studio实现导航抽屉的教程。

但是,假设我想为任何活动创建一个导航抽屉但是有不同的项目,是否可以创建某种基本活动,所以我只需要编写NavDrawerItems和DrawerItemClickListener ......

可以实现这个BaseActivity还是太过分了?我在Google上搜索了很多这方面的内容,但没有找到任何关于我得到的这个特殊问题的教程:(我找到的大部分基础活动教程都是带有相同项目的导航抽屉。

修改

我现在的代码,但在我看来,阅读时间有点长:

我使用的教程是:

https://trinitytuts.com/android-navigation-drawer-with-material-design-arrow/ http://thedeveloperworldisyours.com/android/put-image-navigation-drawer/

X = [a1,a2,a3,b1,b2,b3,c1,b2,b3]

}

1 个答案:

答案 0 :(得分:0)

在我看来,这是可能的。您可以在准备列表数据时进行设置,如下面的示例

private static void prepareListData(final Context context) {
    final Activity activity = ((Activity) context);
    String activity_name = context.getClass().getSimpleName().replace("Activity", "");

    sListDataHeader = new ArrayList<>();
    sListDataChild = new HashMap<>();

    // adding header data, except current activity
    String[] mItemHeaders = activity.getResources().getStringArray(R.array.items_array_expandable_header);

    // here...
    for (String item : mItemHeaders) {
        if (!item.toLowerCase().equals(activity_name.toLowerCase())) {
            sListDataHeader.add(item);
        }
    }

    String[] mItemMainChild = activity.getResources().getStringArray(R.array.items_array_expandable_main_child);

    // Child data
    List<String> listChild = Arrays.asList(mItemMainChild);

    // Header, Child data
    for (int i = 0; i < sListDataHeader.size() - 2; i++) {
        sListDataChild.put(sListDataHeader.get(i), new ArrayList<String>());
    }
    sListDataChild.put(sListDataHeader.get(sListDataHeader.size() - 1), listChild);
}

希望这有帮助!