OnGroupclicklistner не работает в Android - PullRequest
0 голосов
/ 03 июня 2019

Привет в приведенном ниже коде описывает расширяемый просмотр списка с помощью панели навигации.Теперь в приведенном ниже меню содержится 7 родительских меню, в этом меню у меня есть дочерний элемент (подменю)

Теперь, когда мы нажимаем 1 родительское меню, оно пересекается.Как перенаправить на определенный фрагмент, когда мы нажимаем на любой дочерний элемент.

Может ли кто-нибудь помочь, пожалуйста.

например:

предположим, если я нажму Добавить дочернее меню зданияхочу перейти к конкретному фрагменту. Как и у оставшегося потомка.

NavigationViewActivity.java:

public class NavigationViewActivity extends AppCompatActivity {

private DrawerLayout mDrawerLayout;
ExpandableListAdapter mMenuAdapter;
ExpandableListView expandableList;
List<ExpandedMenuModel> listDataHeader;
HashMap<ExpandedMenuModel, List<String>> listDataChild;
private static final int CONTENT_VIEW_ID = 10101010;
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(activity_navigation_view);
    final ActionBar ab = getSupportActionBar();
    /* to set the menu icon image*/
    ab.setHomeAsUpIndicator(android.R.drawable.ic_menu_add);
    ab.setDisplayHomeAsUpEnabled(true);
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    expandableList = (ExpandableListView) findViewById(R.id.navigationmenu);
    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);

    if (navigationView != null) {
        setupDrawerContent(navigationView);
    }

    prepareListData();
    mMenuAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild, expandableList);

    // setting list adapter
    expandableList.setAdapter(mMenuAdapter);

    expandableList.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
        @Override
        public boolean onChildClick(ExpandableListView parent, View v,
                                    int groupPosition, int childPosition, long id) {

            Toast.makeText(NavigationViewActivity.this,"Bus Ticket",Toast.LENGTH_SHORT).show();
            switch (groupPosition) {

                case 1:

                    switch (childPosition) {

                        case 0:
                            android.support.v4.app.FragmentTransaction ft=getSupportFragmentManager ().beginTransaction ();
                            ft.replace (R.id.container_toolbar,new HomeFragement ());
                            ft.commit ();
                            // Intent intent = new Intent(getApplicationContext (), HomeFragement.class);
                            //startActivity(intent);
                            Toast.makeText(NavigationViewActivity.this,"Bus Ticket",Toast.LENGTH_SHORT).show();
                            break;
                        case 1:
                            Toast.makeText(NavigationViewActivity.this,"Flight Ticket",Toast.LENGTH_SHORT).show();
                            break;

                        case 2:
                            Toast.makeText(NavigationViewActivity.this,"Electricity",Toast.LENGTH_SHORT).show();
                            break;
                        case 3:
                            Toast.makeText(NavigationViewActivity.this,"Water",Toast.LENGTH_SHORT).show();
                            break;


                    }
                    break;


                default:
                    break;

            }

            return false;
        }
    });
    expandableList.setOnGroupClickListener(new android.widget.ExpandableListView.OnGroupClickListener() {
        @Override
        public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {

            Toast.makeText(getApplicationContext(), "OFFere ", Toast.LENGTH_SHORT).show();
            System.out.println("Here we go");
            switch (groupPosition) {
                case 1:
                    //Toast.makeText(getApplicationContext(), "OFFere ", Toast.LENGTH_SHORT).show();
               /* Intent intent = new Intent(MainActivity.this, Secondactivity.class);
                startActivity(intent);*/


                    break;

                case 2:

                    Toast.makeText(getApplicationContext(), "Accounts ", Toast.LENGTH_SHORT).show();
                    break;

                case 3:

                    Toast.makeText(getApplicationContext(), "Settings ", Toast.LENGTH_SHORT).show();

                    break;

                case 4:
                    Toast.makeText(getApplicationContext(),"Help",Toast.LENGTH_SHORT).show();
                    break;

                default:
                    break;

            }

            return false;
        }

    });
}

private void prepareListData() {
    listDataHeader = new ArrayList<ExpandedMenuModel> ();
    listDataChild = new HashMap<ExpandedMenuModel, List<String>>();

    ExpandedMenuModel item1 = new ExpandedMenuModel();
    item1.setIconName("HOME");
    item1.setIconImg(R.drawable.home);
    listDataHeader.add(item1);

    ExpandedMenuModel item2 = new ExpandedMenuModel();
    item2.setIconName("BUILDING MANAGEMENT");
    item2.setIconImg(R.drawable.building_floor_room);
    // Adding data header
    listDataHeader.add(item2);

    ExpandedMenuModel item3 = new ExpandedMenuModel();
    item3.setIconName("LIGHT MANAGEMENT");
    item3.setIconImg(R.drawable.building_floor_room);
    listDataHeader.add(item3);

    ExpandedMenuModel item4 = new ExpandedMenuModel();
    item4.setIconName("SCHEDULING");
    item4.setIconImg(R.drawable.building_floor_room);
    listDataHeader.add(item4);

    ExpandedMenuModel item5 = new ExpandedMenuModel();
    item5.setIconName("USER MANAGEMENT");
    item5.setIconImg(R.drawable.username);
    listDataHeader.add(item5);

    ExpandedMenuModel item6 = new ExpandedMenuModel();
    item6.setIconName("ENERGY MANAGEMENT");
    item6.setIconImg(R.drawable.username);
    listDataHeader.add(item6);

    ExpandedMenuModel item7 = new ExpandedMenuModel();
    item7.setIconName("LOGOUT");
    item7.setIconImg(R.drawable.username);
    listDataHeader.add(item7);

    // Adding child data



    List<String> heading1 = new ArrayList<String>();
    heading1.add("Add Building");
    heading1.add("Add Floor");
    heading1.add("Grouping Luminaries");

    List<String> heading2 = new ArrayList<String>();
    heading2.add("Add Luminaries");
    heading2.add("Assign Luminaries");
    heading2.add("Grouping Luminaries");

    List<String> heading3 = new ArrayList<String>();
    heading3.add("Add Schedules");
    heading3.add("View Schedules");

    List<String> heading4 = new ArrayList<String>();
    heading4.add("Manage Operator");
    heading4.add("Manage Employee");


    //listDataHeader.get (item1.toString ());

   // listDataHeader.add (item1);
    //this.listDataHeader.get (0);
  //  listDataChild.put(listDataHeader.get(0), item1.getIconName ().indexOf (0));
    listDataChild.put(listDataHeader.get(1), heading1);// Header, Child data
    listDataChild.put(listDataHeader.get(2), heading2);
    listDataChild.put(listDataHeader.get(3), heading3);
    listDataChild.put(listDataHeader.get(4), heading4);
   // listDataHeader.get (5);
  //  listDataHeader.get ()

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            mDrawerLayout.openDrawer(GravityCompat.START);
            return true;
    }
    return super.onOptionsItemSelected(item);
}

private AdapterView.OnItemClickListener mDrawerItemClickedListener = new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                            long arg3) {

    }
};

private DrawerLayout.DrawerListener mDrawerListener = new DrawerLayout.DrawerListener () {

    @Override
    public void onDrawerStateChanged(int status) {

    }

    @Override
    public void onDrawerSlide(View view, float slideArg) {

    }

    @Override
    public void onDrawerOpened(View view) {
    }

    @Override
    public void onDrawerClosed(View view) {
    }
};

private void setupDrawerContent(NavigationView navigationView) {
    //revision: this don't works, use setOnChildClickListener() and setOnGroupClickListener() above instead
    navigationView.setNavigationItemSelectedListener(
            new NavigationView.OnNavigationItemSelectedListener() {
                @Override
                public boolean onNavigationItemSelected(MenuItem menuItem) {
                    menuItem.setChecked(true);
                    mDrawerLayout.closeDrawers();
                    return true;
                }
            });
}

}

...