![](/img/trans.png)
[英]How Android Espresso click an item in Recycler View inside Recycler View?
[英]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.