J'ai un tiroir de navigation personnalisé qui contient des boutons dans gridview ... Je dois fermer le tiroir de navigation de la classe d'adaptateur ... OU est toute autre façon de fermer le tiroir quand Je clique sur un bouton dans le gridview.Comment fermer le tiroir de navigation d'une classe d'adaptateur
Onclick fonctionne parfaitement, mais le tiroir de navigation ne se ferme pas ...
C'est ma classe adaptateur ...
public class NavMenuGridViewAdapter extends ArrayAdapter<MenuGridItem>{
ArrayList<MenuGridItem> menuList = new ArrayList<>();
Context context;
View activityHome;
public NavMenuGridViewAdapter(Context context, int textViewResourceId, ArrayList<MenuGridItem> objects) {
super(context, textViewResourceId, objects);
menuList = objects;
this.context=context;
}
@Override
public int getCount() {
return super.getCount();
}
@Override
public View getView(int position, final View convertView, ViewGroup parent) {
View v = convertView;
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.nav_menu_view_item, null);
activityHome = inflater.inflate(R.layout.activity_home, null);
AppCompatButton appCompatButton = (AppCompatButton) v.findViewById(R.id.nav_menu_button);
appCompatButton.setBackgroundResource(menuList.get(position).getMenuImage());
appCompatButton.setPadding(0,230,0,0);
appCompatButton.setText(menuList.get(position).getMenuName());
appCompatButton.setTag(Integer.valueOf(position));
appCompatButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Integer position = (Integer)v.getTag();
Fragment fragment=null;
FragmentTransaction ft=null;
Intent intent;
switch (position){
case 0:
fragment = new DashboardFragment();
ft = ((AppCompatActivity) context).getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, fragment);
ft.commit();
break;
case 1:
fragment = new MyGiftCardFragment();
ft = ((AppCompatActivity) context).getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, fragment);
ft.commit();
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
}
DrawerLayout drawer = activityHome.findViewById(R.id.drawer_layout);
Log.i("GiftCard", "Menu: " + drawer);
//drawer.closeDrawer(Gravity.LEFT);
drawer.closeDrawer(GravityCompat.START);
}});
return v;
}
}
Ceci est mon MainActivity
NavMenuGridViewAdapter navMenuGridViewAdapter=new NavMenuGridViewAdapter(this,R.layout.nav_menu_view_item,menuList);
navbarMenuGridView.setAdapter(navMenuGridViewAdapter);
Ceci est mon nav_menu_view_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical">
<android.support.v7.widget.AppCompatButton
android:id="@+id/nav_menu_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:textColor="#FFFF"
android:scaleType="fitCenter"
/>
</RelativeLayout>
</LinearLayout>
jeté le contexte à l'activité et le fermer comme: ((HomeActivity) mContext) .mBinding.drawerLayout.closeDrawers(); – Killer
désolé je n'ai pas eu vous .... je suis débutant à android ... pouvez-vous expliquer –