我希望能夠在選擇專案時將檢查保留在選單中,但是當單擊它然后重新打開選單時,檢查消失了。
我在其中選擇專案的選單影像
我重新打開選單的影像,但在視覺上好像我沒有點擊
這是java代碼中的選單
public void buttoninit(){
button1 = findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Para agregar un Popup Menu a un Button
PopupMenu popupMenu = new PopupMenu(mostrarActivity.this, button1);
popupMenu.getMenuInflater().inflate(R.menu.menu_filter_pa, popupMenu.getMenu());
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_pa_rut:
if (item.isChecked()) item.setChecked(false);
else item.setChecked(true);
a = 1;
break;
case R.id.menu_pa_nombre:
if (item.isChecked()) item.setChecked(false);
else item.setChecked(true);
a = 2;
break;
case R.id.menu_pa_apellido:
if (item.isChecked()) item.setChecked(false);
else item.setChecked(true);
a = 3;
break;
default:
return false;
}
return true;
}
});
popupMenu.show();
}
});
}
這是 XML 格式的選單
<group android:checkableBehavior="single">
<item
android:id="@ id/menu_pa_rut"
android:icon="@drawable/ic_filter_list"
android:title="Rut"
app:showAsAction="ifRoom">
</item>
<item
android:id="@ id/menu_pa_nombre"
android:icon="@drawable/ic_filter_list"
android:title="Nombre"
app:showAsAction="ifRoom">
</item>
<item
android:id="@ id/menu_pa_apellido"
android:icon="@drawable/ic_filter_list"
android:title="Apellido"
app:showAsAction="ifRoom">
</item>
</group>
uj5u.com熱心網友回復:
每當您單擊按鈕以填充選項選單時,它每次都會重新初始化,并且將應用默認值和檢查。您必須為單擊的選單單選按鈕存盤單擊位置并相應地設定為選中狀態。
或者通過全域宣告它只初始化一次彈出選項選單。
uj5u.com熱心網友回復:
您必須將代碼移出setOnClickListener只需保留popupMenu.show() 并且如果您想保存您的 ui 狀態或選單,更好的方法是使用實??時資料和 viewModel。即使配置發生變化,實時資料也會保持價值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/401046.html
