I have a navigation drawer. When an event is called, I want to hide one of my navigation menu item for user. How can I do that?
protected void onCreate(Bundle sa
Hide/Show Navigation item
Make changes in your NavDrawerListAdapter as follow,
public class MyListAdapter extends BaseAdapter {
Context context;
ArrayList listMenuItem;
ArrayList listMenuItem1;
int hideViewIndex = -1;
public MyListAdapter(Context context, ArrayList listMenuItem) {
this.context = context;
this.listMenuItem = listMenuItem;
listMenuItem1=new ArrayList(listMenuItem);
}
@Override
public int getCount() {
return listMenuItem.size();
}
@Override
public Object getItem(int position) {
return listMenuItem.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
private class ViewHolder
{
private ImageView imgLogo;
private TextView txtItemName;
}
public void hideView(int pos)
{
listMenuItem.remove(pos);
notifyDataSetChanged();
}
public void showView(int pos)
{
listMenuItem.add(pos, listMenuItem1.get(pos));
notifyDataSetChanged();
}
@SuppressLint("InflateParams")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if(convertView == null)
{
LayoutInflater myLayoutInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = myLayoutInflater.inflate(R.layout.activity_item_list, null);
viewHolder = new ViewHolder();
viewHolder.imgLogo = (ImageView) convertView.findViewById(R.id.imgLogo);
viewHolder.txtItemName = (TextView) convertView.findViewById(R.id.txtItemName);
convertView.setTag(viewHolder);
}
else
{
viewHolder = (ViewHolder) convertView.getTag();
}
ItemListModel itemListModel = listMenuItem.get(position);
viewHolder.imgLogo.setImageDrawable(itemListModel.getImageLogo());
viewHolder.txtItemName.setText(itemListModel.getStrItemName());
return convertView;
}
and call this method in activity as follow,
adapter.hideView(2);
//adapter.showView(2);