как исправить эту проблему recylerview?есть ли ошибка в моем коде?во время выполнения после пения в приложении вылетает - PullRequest
0 голосов
/ 26 декабря 2018

Поскольку я новичок в android studio и не обладаю достаточными знаниями о java-программировании или android studio, но каким-то образом мне просто удалось выполнить действие sign_in или sign_up с помощью firebase во время выполнения, и он успешно работает.Но после создания recyclerView мое приложение не работает должным образом каждый раз, когда происходит сбой после нажатия кнопки sign_in.

Я пытаюсь обновить и использовать все версии recyclerview, совместимые с appcompat-v7:28, ноэто не работает для меня.Это дает мне ошибку

. Причина: java.lang.ClassCastException: android.support.v4.widget.DrawerLayout не может быть приведен к android.support.v7.widget.RecyclerView в com.example.shoplaptop.gujjardairyfarmapp.Home.onCreate (Home.java:79)

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);

    //set Name for USer according to firebase
    View headerView = navigationView.getHeaderView(0);
    txtFullName = (TextView)headerView.findViewById(R.id.txtFullName);
    txtFullName.setText(common.currentUser.getName());

здесь возникает ошибка ...

   //LoadMenu
    recycler_menu = (RecyclerView)findViewById(R.id.drawer_layout);
    recycler_menu.setHasFixedSize(true);
    layoutManager =new LinearLayoutManager(this);
    recycler_menu.setLayoutManager(layoutManager);

    loadMenu();
}

private void loadMenu() {
    FirebaseRecyclerAdapter<Category, MenuViewHolder> adapter = new FirebaseRecyclerAdapter<Category, MenuViewHolder>(Category.class, R.layout.menu_item, MenuViewHolder.class, category) {
        @Override
        protected void populateViewHolder(MenuViewHolder viewHolder, Category model, int position) {
            viewHolder.txtMenuName.setText(model.getName());
            Picasso.with(getBaseContext()).load(model.getImage())
                    .into(viewHolder.imageView);
            final Category clickitem = model;
            viewHolder.setItemClickListener(new ItemClickListener() {
                @Override
                public void onClick(View view, int position, boolean isLongClick) {
                    Toast.makeText(Home.this, ""+clickitem.getName(), Toast.LENGTH_SHORT).show();
                }
            });
        }
    };

    recycler_menu.setAdapter(adapter);
}


@Override
public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.home, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {


    return super.onOptionsItemSelected(item);
}

@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();

    if (id == R.id.nav_menu) {
        // Handle the camera action
    } else if (id == R.id.nav_Cart) {

    } else if (id == R.id.nav_orders) {

    } else if (id == R.id.nav_log_out) {

    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
}

}

зависимость

1 Ответ

0 голосов
/ 26 декабря 2018

Ошибка здесь:

recycler_menu = (RecyclerView)findViewById(R.id.drawer_layout);

R.id.drawer_layout - это идентификатор <DrawerLayout....> в xml.findViewById(R.id.drawer_layout) получает DrawerLayout и пытается привести его к RecyclerView, что является RuntimeError.Используйте правильный идентификатор <RecyclerView...>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...