簡體   English   中英

如何通過單擊回收站視圖中的項目來啟用菜單項?

[英]How to enable menu item with a click of items of recycler view?

我有一個Recycler視圖,其中帶有InterestsActivity中的復選框,並且我至少選擇了4個復選框后,想要在工具欄上啟用NEXT按鈕

onCreateOptionsMenu (菜單菜單)中禁用了NEXT按鈕

 @Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.menu_interests_button, menu);
    nextBtn = menu.findItem(R.id.action_button);
    nextBtn.setEnabled(false);

    return true;
}

我已覆蓋onPrepareOptionsMenu (菜單菜單),並嘗試通過在ViewHolder項目的onClick中調用invalidateOptionsMenu ()來啟用菜單項。

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    super.onPrepareOptionsMenu(menu);

    MenuItem item = menu.findItem(R.id.action_button);
    if(interestMap.size()>=4)
    item.setEnabled(true);

    return true;
}

我在ViewHolder中的 bind方法

public void bind(final Topic subject) {
        interestMap=new HashMap<>();
        mSubjectCheckbox.setText(subject.getSubjectName());
        mSubjectCheckbox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                interestMap.put(subject.getSubjectName(),true);
                if(interestMap.size()>=4)
                    InterestsActivity.this.invalidateOptionsMenu();

            }
        });
    }

但是該按鈕未啟用,我是在做正確的事情還是缺少任何東西?

 @Override
public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();

    if (id == R.id.action_button) {
        mFirebaseUtil.mFirestore.collection("users").document(FirebaseUtil.getCurrentUserId()).collection("interests").add(interestMap).addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
            @Override
            public void onSuccess(DocumentReference documentReference) {
                Intent setupIntent = new Intent(InterestsActivity.this, SetupActivity.class);
                startActivity(setupIntent);
                finish();
            }
        });
        return true;
    }

    return super.onOptionsItemSelected(item);
}

請幫我解決這個問題。 提前致謝。

這段代碼似乎沒有錯。

您應該檢查條件interestMap.size()>=4獲得正確的值,即您的interestMap是否正確填充。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM