在导航抽屉中以编程方式对项目进行分组

时间:2016-09-28 13:22:23

标签: android android-navigation-drawer

*我的应用程序中有一个导航抽屉。我按照以下脚本以编程方式添加了菜单项。我想将某些项目组合为可扩展列表视图,但我不确定如何去做。

$("#logOut").click(function(){
    $.ajax({
        url: '/logOut',
        method: "POST"
    });
});

我从string.xml private String[] mNavigationDrawerItemTitles; private DrawerLayout mDrawerLayout; private ListView mDrawerList; Toolbar toolbar; private CharSequence mDrawerTitle; private CharSequence mTitle; ActionBarDrawerToggle mDrawerToggle; SharedPreferences.Editor editor; SharedPreferences pref; ProgressDialog pd; Token token = new Token(); /** * ATTENTION: This was auto-generated to implement the App Indexing API. * See https://g.co/AppIndexing/AndroidStudio for more information. */ private GoogleApiClient client; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTitle = mDrawerTitle = getTitle(); mNavigationDrawerItemTitles = getResources().getStringArray(R.array.navigation_drawer_items_array); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.left_drawer); setupToolbar(); TextView mail, name; View header = getLayoutInflater().inflate(R.layout.header, null); DataModel[] drawerItem = new DataModel[7]; drawerItem[0] = new DataModel(R.drawable.ic_home, getResources().getStringArray(R.array.navigation_drawer_items_array)[0]); drawerItem[1] = new DataModel(R.drawable.ic_local_grocery_store, getResources().getStringArray(R.array.navigation_drawer_items_array)[1]); drawerItem[2] = new DataModel(R.drawable.ic_collections, getResources().getStringArray(R.array.navigation_drawer_items_array)[2]); drawerItem[3] = new DataModel(R.drawable.ic_payment, getResources().getStringArray(R.array.navigation_drawer_items_array)[3]); drawerItem[4] = new DataModel(R.drawable.ic_wc, getResources().getStringArray(R.array.navigation_drawer_items_array)[4]); drawerItem[5] = new DataModel(R.drawable.ic_wc, getResources().getStringArray(R.array.navigation_drawer_items_array)[5]); drawerItem[6] = new DataModel(R.drawable.ic_settings_power, getResources().getStringArray(R.array.navigation_drawer_items_array)[6]); getSupportActionBar().setDisplayHomeAsUpEnabled(false); getSupportActionBar().setHomeButtonEnabled(true); DrawerItemCustomAdapter adapter = new DrawerItemCustomAdapter(this, R.layout.list_view_item_row, drawerItem); mDrawerList.setAdapter(adapter); mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerLayout.setDrawerListener(mDrawerToggle); mDrawerList.addHeaderView(header); mail = (TextView) findViewById(R.id.header_email); name = (TextView) findViewById(R.id.agentname); pref = getSharedPreferences(Config.MAIN, MODE_PRIVATE); String email = pref.getString(Config.USER_EMAIL, ""); String aname = pref.getString(Config.AGENTName, ""); Log.e("email", email); Log.e("aname", aname); mail.setText(email); name.setText(aname); setupDrawerToggle(); selectItem(0); // ATTENTION: This was auto-generated to implement the App Indexing API. // See https://g.co/AppIndexing/AndroidStudio for more information. client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build(); } @Override public void onStart() { super.onStart(); // ATTENTION: This was auto-generated to implement the App Indexing API. // See https://g.co/AppIndexing/AndroidStudio for more information. client.connect(); Action viewAction = Action.newAction( Action.TYPE_VIEW, // TODO: choose an action type. "Main Page", // TODO: Define a title for the content shown. // TODO: If you have web page content that matches this app activity's content, // make sure this auto-generated web page URL is correct. // Otherwise, set the URL to null. Uri.parse("http://host/path"), // TODO: Make sure this auto-generated app URL is correct. Uri.parse("android-app://com.laurel.radius/http/host/path") ); AppIndex.AppIndexApi.start(client, viewAction); } @Override public void onStop() { super.onStop(); // ATTENTION: This was auto-generated to implement the App Indexing API. // See https://g.co/AppIndexing/AndroidStudio for more information. Action viewAction = Action.newAction( Action.TYPE_VIEW, // TODO: choose an action type. "Main Page", // TODO: Define a title for the content shown. // TODO: If you have web page content that matches this app activity's content, // make sure this auto-generated web page URL is correct. // Otherwise, set the URL to null. Uri.parse("http://host/path"), // TODO: Make sure this auto-generated app URL is correct. Uri.parse("android-app://com.laurel.radius/http/host/path") ); AppIndex.AppIndexApi.end(client, viewAction); client.disconnect(); } int x = 0; private class DrawerItemClickListener implements ListView.OnItemClickListener { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { selectItem(position - 1); } } private void selectItem(int position) { Fragment fragment = null; switch (position) { case 0: x = position; fragment = new HomeFragment(); break; case 1: x = position; fragment = new MycollectionReportFragment(); break; case 2: x = position; fragment = new PendingCollectionFragment(); break; case 3: x = position; fragment = new ReceivecashpaymentFragment(); break; case 4: x = position; fragment = new RegistrationFragment(); break; case 5: x = position; fragment = new CollectionHistory(); break; case 6: logout(); break; default: break; } if (fragment != null) { FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit(); mDrawerList.setItemChecked(position + 1, true); mDrawerList.setSelection(position); setTitle(mNavigationDrawerItemTitles[position]); mDrawerLayout.closeDrawer(mDrawerList); } else { Log.e("MainActivity", "Error in creating fragment"); } } @Override public void setTitle(CharSequence title) { mTitle = title; getSupportActionBar().setTitle(mTitle); } @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); mDrawerToggle.syncState(); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (mDrawerToggle.onOptionsItemSelected(item)) { return true; } return super.onOptionsItemSelected(item); } void logout() { /* String tokenid=pref.getString(Config.TOKEN_VALUE,"");*/ // editor.putString(Config.USER, null); AlertDialog.Builder alertDialog = new AlertDialog.Builder( MainActivity.this); String log = getResources().getString(R.string.Logoutapp); alertDialog.setTitle(log); String exit = getResources().getString(R.string.closethisapplication); alertDialog.setMessage(exit); alertDialog.setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { //dialog.cancel(); if (mDrawerLayout != null) { mDrawerList.setItemChecked(x + 1, true); mDrawerList.setSelection(x); setTitle(mNavigationDrawerItemTitles[x]); mDrawerLayout.closeDrawer(mDrawerList); } } });

中获取值

1 个答案:

答案 0 :(得分:0)

我会将DataModel[] drawerItem = new DataModel[7];列为清单。然后就像使用任何其他列表视图一样使用drawerItem.add("your new drawer item")adapter.notifyDataSetChanged()。或者,您可以保持原样并向适配器添加方法以传入新数组并以此方式更新。