Nano Hash - криптовалюты, майнинг, программирование

Пункт меню панели инструментов не активен

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

Пожалуйста, помогите мне исправить это.

введите здесь описание изображения

Мой код:

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        badgeLayout = (RelativeLayout) menu.findItem(R.id.badge).getActionView();
        mCounter = (TextView) badgeLayout.findViewById(R.id.counter);
        badgeLayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(context, "Cart is Working", Toast.LENGTH_SHORT).show();
                Intent next = new Intent(context, ProductActivity.class);
                startActivity(next);
            }
        });
return true;
}

ОБНОВЛЕНИЕ:

     public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, SearchView.OnCloseListener, SearchView.OnQueryTextListener {
            public static final String MyPREFERENCES = "Preference";
            public static final String SEARCHING_DATA = "DATA_SEARCH";
            public static String strTabName;
            public static TextView mCounter;
            public static RelativeLayout badgeLayout;

            public ArrayList<String> values;
            Toolbar toolbar;
            Context context;
            Config config;
            ArrayList<String> tabName = new ArrayList<String>();
            SharedPreferences pref;
            TextView txtDash_Title, txtDash_Des;
            String passQuery;
            FragmentManager mFragmentManager;
            FragmentTransaction mFragmentTransaction;
            String possibleEmail;
            String GOOGLE_USERNAME;
            private int count = 0;
            private GoogleApiClient client;

            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                context = this;

                pref = context.getSharedPreferences(MyPREFERENCES, MODE_PRIVATE);
                setupToolbar();
                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.setDrawerListener(toggle);
                toggle.syncState();

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

                txtDash_Title = (TextView) findViewById(R.id.dashboard_txt_title);
                txtDash_Des = (TextView) findViewById(R.id.dashboard_txt_des);

                TextView myTextview = (TextView) findViewById(R.id.textView);
                if (haveNetworkConnection())
                    new TabNameSync().execute();
                else
                    Toast.makeText(context, "No Network Connection", Toast.LENGTH_SHORT).show();
                setupCollapsingToolbar();
                getGOOGLEUSERNAME();

            }

            private void getGOOGLEUSERNAME() {
                Cursor c = getApplication().getContentResolver().query(ContactsContract.Profile.CONTENT_URI, null, null, null, null);
                c.moveToFirst();
                GOOGLE_USERNAME = c.getString(c.getColumnIndex("display_name"));
                Log.e("Google Username", GOOGLE_USERNAME);
                c.close();
            }

            private void setupCollapsingToolbar() {
                final CollapsingToolbarLayout collapsingToolbar = (CollapsingToolbarLayout) findViewById(
                        R.id.collapse_toolbar);

                collapsingToolbar.setTitleEnabled(false);
            }

            private void setupToolbar() {
                toolbar = (Toolbar) findViewById(R.id.toolbar);
                setSupportActionBar(toolbar);
                getSupportActionBar().setTitle("Welcome to Scoop Shop!");
            }

            @SuppressWarnings("StatementWithEmptyBody")
            @Override
            public boolean onNavigationItemSelected(MenuItem item) {
                int id = item.getItemId();

                if (id == R.id.nav_camera) {
                } else if (id == R.id.nav_gallery) {

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

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

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

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

                }

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

            @Override
            public boolean onCreateOptionsMenu(Menu menu) {
                getMenuInflater().inflate(R.menu.main, menu);
                badgeLayout = (RelativeLayout) menu.findItem(R.id.badge).getActionView();
                mCounter = (TextView) badgeLayout.findViewById(R.id.counter);
                badgeLayout.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(context, "Cart Working", Toast.LENGTH_SHORT).show();
                        Intent next = new Intent(context, ProductActivity.class);
                        startActivity(next);
                    }
                });
        //        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        //        SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
        //        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        //        searchView.setSubmitButtonEnabled(false);
        ////        searchView.getOutlineProvider();
        //        searchView.setOnQueryTextListener(this);
        //        searchView.setOnCloseListener(this);
                //       return super.onCreateOptionsMenu(menu);
                return true;
            }

            @Override
            public boolean onOptionsItemSelected(MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.action_search:
                        break;
                    case R.id.badge:
                        Toast.makeText(context, "Cart is Working", Toast.LENGTH_SHORT).show();
               /*         Intent next = new Intent(context, ProductActivity.class);
                        startActivity(next);*/
                        return true;
                    default:
                        return super.onOptionsItemSelected(item);
                }
                return super.onOptionsItemSelected(item);
            }
    }

  • Опубликуйте свой ответ. Это будет полезно для кого-то @Edgarprabhu 28.07.2016
  • Нет, я не получил ответа, вы нашли решения? 28.07.2016
  • stackoverflow.com/ вопросы/37541136/ 28.07.2016
  • Пожалуйста, обратитесь к приведенному выше @Edgarprabhu 28.07.2016

Ответы:


1

Вопрос может быть уже закрыт, но я нашел возможную причину:

  • если вы использовали относительный макет в вашем файле .xml, соседние элементы могут перекрывать вашу панель инструментов. Таким образом, ваша панель инструментов должна быть в верхней части представления в вашем файле .xml. Это работает для меня.
30.05.2017

2

Вы должны пойти с OnOptionsItemSelected()

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
        case R.id.badge:
            Toast.makeText(context, "Cart is Working", Toast.LENGTH_SHORT).show();
            Intent next = new Intent(context, ProductActivity.class);
            startActivity(next);
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

Для получения дополнительной информации перейдите по этой ссылке: http://developer.android.com/guide/topics/ui/menus.html

27.02.2016
  • @ParamaSudha Можете ли вы вставить весь код своей активности? 27.02.2016
  • Да, конечно. Пожалуйста, подождите несколько минут @Chintan 27.02.2016
  • Обновил @Chintan Soni 27.02.2016

  • 3

    Возможно, проблема в том, что вы не вызываете super.onOptionsItemSelected(item) при нажатии badge. Измените свой метод следующим образом: -

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
           super.onOptionsItemSelected(item)
           switch (item.getItemId()) {
                case R.id.action_search:
                     break;
                case R.id.badge:
                     Toast.makeText(context, "Cart is Working", Toast.LENGTH_SHORT).show();
                /* Intent next = new Intent(context, ProductActivity.class);
                       startActivity(next);*/
                       break;
                 default:
                       break;
                }
                return true;
         }
    
    27.02.2016
  • Не могли бы вы опубликовать свой xml? 27.02.2016
  • Мой xml находится здесь. Следующая ссылка. @Морозный 27.02.2016
  • stackoverflow.com/questions/35622418/toolbar-menuitem -ошибка/ 27.02.2016
  • я проверил ваш xml. Я предполагаю, что вы должны были указать идентификатор RelativeLayout в badge_layout.xml как badge. Вместо установки android:clickable="true" в ImageView установите его для родительского RelativeLayout. А также вызовите return super.onCreateOptionsMenu(menu); вместо return true в методе onCreateOptionsMenu. 27.02.2016
  • Даже я использую android:clickable=true в относительном макете, но это не сработало. 27.02.2016
  • Удалите android:clickable="true" из imageView и попробуйте это: - А также вызовите return super.onCreateOptionsMenu(menu); вместо return true; в методе onCreateOptionsMenu. 27.02.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..