سؤال

هذا هو الكود الموجود في الجزء الخاص بي

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        Log.e("aaa", "ee");
        switch (item.getItemId()) {
        case R.id.edit:
            Log.e("sssssss","SSSSSSSSSSSSSSs");
            Intent editIntent = new Intent(getActivity(),
                    EditCustomerProfile.class);
            //startActivityForResult(editIntent, EditProfile);
            startActivity(editIntent);
            break;
        default:
            break;
        }
        return super.onOptionsItemSelected(item);
    }

أستطيع رؤية عنصر القائمة في شريط الإجراءات الخاص بي.

أقوم بتضخيم القائمة مثل هذا:

@Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        int currentTab = mViewPager.getCurrentItem();
        if (currentTab == 1) {
            menu.clear();
            inflater.inflate(R.menu.all_addresses, menu);
        } else if (currentTab == 0) {
            menu.clear();
            inflater.inflate(R.menu.profile, menu);
        }
        return super.onPrepareOptionsMenu(menu);
    }

أنا أتحدث عن قائمة الملف الشخصي

ولكن عندما قمت بالنقر على التعديل، لم يحدث شيء، حتى السجل لا يعمل

هل كانت مفيدة؟

المحلول

يبدو أنك تقوم بإنشاء القائمة الخاصة بك من خلال نشاطك، ولكنك تحاول اعتراض تحديد عنصر القائمة في الجزء الخاص بك.

من أجل تضمين الجزء في مكدس الاستدعاءات onOptionItemSelected(), ، يجب عليك التأكد من استدعاء الجزء hasOptionsMenu(true) في كل منها onCreate().

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top