Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java mDrawerList.setOnItemClickListener NPE_Java_Android_Android Listview - Fatal编程技术网

Java mDrawerList.setOnItemClickListener NPE

Java mDrawerList.setOnItemClickListener NPE,java,android,android-listview,Java,Android,Android Listview,这是onCreate,它在mDrawerList.setOnItemClickListener上提供NPE(此) 我只想创建列表菜单与国家图标和文字,如:俄罗斯,英国,意大利。当用户单击它时,它必须更改应用程序的语言环境。 我想用抽屉激活来代替将所有不同的语言添加到OverFlowMenu @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) {

这是onCreate,它在mDrawerList.setOnItemClickListener上提供NPE(此) 我只想创建列表菜单与国家图标和文字,如:俄罗斯,英国,意大利。当用户单击它时,它必须更改应用程序的语言环境。 我想用抽屉激活来代替将所有不同的语言添加到OverFlowMenu

@SuppressLint("NewApi")
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(activity_main);

            /**
             *
             *
             *
             *
             */

            mTitle = mDrawerTitle = getTitle();

            // load slide menu items
            navMenuTitles = getResources().getStringArray(nav_drawer_items);

            // nav drawer icons from resources
            navMenuIcons = getResources()
                    .obtainTypedArray(nav_drawer_icons);

            mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

            mDrawerList = (ListView) findViewById(list_slidermenu);

            navDrawerItems = new ArrayList<>();

            // adding nav drawer items to array
            // English language
            navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
            // Russian language
            navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
            // Italian language
            navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));


            // Recycle the typed array
            navMenuIcons.recycle();

            mDrawerList.setOnItemClickListener(this);

            // setting the nav drawer list adapter
            adapter = new NavDrawerListAdapter(getApplicationContext(),
                    navDrawerItems);
            mDrawerList.setAdapter(adapter);

            // enabling action bar app icon and behaving it as toggle button
            getActionBar().setDisplayHomeAsUpEnabled(true);
            getActionBar().setHomeButtonEnabled(true);

            mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
                    R.drawable.ic_drawer, //nav menu toggle icon
                    R.string.app_name, // nav drawer open - description for accessibility
                    R.string.app_name // nav drawer close - description for accessibility
            ) {
                public void onDrawerClosed(View view) {
                    getActionBar().setTitle(mTitle);
                    // calling onPrepareOptionsMenu() to show action bar icons
                    invalidateOptionsMenu();
                }

                public void onDrawerOpened(View drawerView) {
                    getActionBar().setTitle(mDrawerTitle);
                    // calling onPrepareOptionsMenu() to hide action bar icons
                    invalidateOptionsMenu();
                }
            };
            mDrawerLayout.setDrawerListener(mDrawerToggle);

            /*if (savedInstanceState == null) {
                // on first time display view for first nav item
                displayView(0);
            }*/
            /**
             *
             *
             *
             *
             */


            storyButtonMainBody = (Button) findViewById(storyButton);
            storyButtonMainBody.setOnClickListener(this);

            specSectButton = (Button) findViewById(specSectionButtonId);
            specSectButton.setOnClickListener(this);

            webRegistryButton = (Button) findViewById(e_registryId);
            webRegistryButton.setOnClickListener(this);

            feedBackButton = (Button) findViewById(feedback);
            feedBackButton.setOnClickListener(this);

            findUsButton = (Button) findViewById(findus);
            findUsButton.setOnClickListener(this);

            communicationButton = (Button) findViewById(R.id.button_show_comunications);
            communicationButton.setOnClickListener(this);
            makeActionOverflowMenuShown();
        }

        /*private class SlideMenuClickListener implements
                OnItemClickListener {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,
                                    long id) {
                // display view for selected nav drawer item
                displayView(position);
            }
        }*/

        /* *
         * Called when invalidateOptionsMenu() is triggered
         */
        @Override
        public boolean onPrepareOptionsMenu(Menu menu) {
            // if nav drawer is opened, hide the action items
            boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
            menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
            return super.onPrepareOptionsMenu(menu);
        }


        /**
         * Diplaying fragment view for selected nav drawer list item
         */
        private void displayView(int position) {
            // update the main content by replacing fragments
            Fragment fragment = null;
            switch (position) {
                case 0:
                    Locale locale = new Locale("en");
                    Locale.setDefault(locale);
                    Configuration config = new Configuration();
                    config.locale = locale;
                    getBaseContext()
                            .getResources()
                            .updateConfiguration(config, getBaseContext()
                                    .getResources()
                                    .getDisplayMetrics());
                    restartActivity();
                    Toast.makeText(this, R.string.locale_lang, LENGTH_LONG).show();
                    break;
                case 1:
                    Locale locale2 = new Locale("ru");
                    Locale.setDefault(locale2);
                    Configuration config2 = new Configuration();
                    config2.locale = locale2;
                    getBaseContext()
                            .getResources()
                            .updateConfiguration(config2, getBaseContext()
                                    .getResources()
                                    .getDisplayMetrics());
                    restartActivity();
                    Toast.makeText(this, R.string.locale_lang, LENGTH_LONG).show();
                    break;
                case 2:
                    Locale locale3 = new Locale("it");
                    Locale.setDefault(locale3);
                    Configuration config3 = new Configuration();
                    config3.locale = locale3;
                    getBaseContext()
                            .getResources()
                            .updateConfiguration(config3, getBaseContext()
                                    .getResources()
                                    .getDisplayMetrics());
                    restartActivity();
                    Toast.makeText(this, R.string.locale_lang, LENGTH_LONG).show();
                    break;
            }

            if (fragment != null) {

                FragmentManager fragmentManager = getFragmentManager();
                fragmentManager.beginTransaction()
                        .replace(R.id.frame_container, fragment).commit();

                // update selected item and title, then close the drawer
                mDrawerList.setItemChecked(position, true);
                mDrawerList.setSelection(position);
                setTitle(navMenuTitles[position]);
                mDrawerLayout.closeDrawer(mDrawerList);
            } else {
                // error in creating fragment
                Log.e("MainActivity", "Error in creating fragment");
            }
        }
@SuppressLint(“NewApi”)
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(活动主视图);
/**
*
*
*
*
*/
mTitle=mDrawerTitle=getTitle();
//加载幻灯片菜单项
NavMenuTiles=getResources().getStringArray(导航抽屉项);
//参考资料中的导航抽屉图标
navMenuIcons=getResources()
.obtainTypedArray(导航抽屉图标);
mDrawerLayout=(抽屉布局)findViewById(R.id.抽屉布局);
mDrawerList=(ListView)findViewById(列表\幻灯片菜单);
navDrawerItems=新的ArrayList();
//将导航抽屉项添加到阵列
//英语
添加(新的NavDrawerItem(navMenuTitles[0],navMenuIcons.getResourceId(0,-1));
//俄语
添加(新的NavDrawerItem(navMenuTitles[1],navMenuIcons.getResourceId(1,-1));
//意大利语
添加(新的NavDrawerItem(navMenuTitles[2],navMenuIcons.getResourceId(2,-1));
//回收类型化数组
navMenuIcons.recycle();
mDrawerList.setOnItemClickListener(this);
//设置导航抽屉列表适配器
适配器=新的NavDroperListAdapter(getApplicationContext(),
纳维特姆斯);
mDrawerList.setAdapter(适配器);
//启用操作栏应用程序图标并将其作为切换按钮
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
mDrawerToggle=新操作BarDrawerToggle(此,mDrawerLayout,
R.drawable.ic_抽屉,//导航菜单切换图标
R.string.app_name,//导航抽屉打开-可访问性说明
R.string.app_name//nav抽屉关闭-可访问性说明
) {
公共无效onDrawerClosed(视图){
getActionBar().setTitle(mTitle);
//调用onPrepareOptions菜单()以显示操作栏图标
无效操作菜单();
}
打开图纸上的公共空白(视图抽屉视图){
getActionBar().setTitle(mDrawerTitle);
//调用onPrepareOptions菜单()隐藏操作栏图标
无效操作菜单();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
/*如果(savedInstanceState==null){
//第一个导航项目的首次显示视图
显示视图(0);
}*/
/**
*
*
*
*
*/
storyButtonMainBody=(按钮)findViewById(storyButton);
storyButtonMainBody.setOnClickListener(此);
SpecSectionButton=(按钮)findViewById(specSectionButtonId);
specSectButton.setOnClickListener(此);
webRegistryButton=(按钮)findViewById(e_registryId);
webRegistryButton.setOnClickListener(此);
feedBackButton=(按钮)findViewById(反馈);
feedBackButton.setOnClickListener(此);
findUsButton=(按钮)findViewById(findus);
findUsButton.setOnClickListener(这个);
通讯按钮=(按钮)findViewById(R.id.Button\u show\u comunications);
communicationButton.setOnClickListener(此);
makeActionOverflowMenuShown();
}
/*私有类SlideMenuClickListener实现
麦克利克监听器{
@凌驾
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id){
//所选导航抽屉项目的显示视图
显示视图(位置);
}
}*/
/* *
*在触发InvalidateOptions菜单()时调用
*/
@凌驾
公共布尔值OnPrepareOptions菜单(菜单){
//如果导航抽屉打开,则隐藏操作项
boolean-DrawerLayout=mDrawerLayout.isDrawerOpen(mDrawerList);
menu.findItem(R.id.action\u设置).setVisible(!drawerropen);
返回super.onPrepareOptions菜单(菜单);
}
/**
*为所选导航抽屉列表项显示片段视图
*/
私有void显示视图(内部位置){
//通过替换片段更新主要内容
片段=空;
开关(位置){
案例0:
语言环境=新语言环境(“en”);
setDefault(Locale);
配置配置=新配置();
config.locale=locale;
getBaseContext()
.getResources()
.updateConfiguration(配置,getBaseContext()
.getResources()
.getDisplayMetrics());
重启活动();
Toast.makeText(this,R.string.locale_lang,LENGTH_LONG).show();
打破
案例1:
语言环境locale2=新语言环境(“ru”);
setDefault(locale2);
配置
mDrawerList = (ListView) findViewById(list_slidermenu);