Чеки не отображаются в меню параметров - PullRequest
0 голосов
/ 24 ноября 2011

Иногда, когда делаешь что-то очень простое, ты упускаешь что-то большое. Я, должно быть, упускаю что-то огромное, потому что я никуда не быстро (а час просеивания в Интернете ничего не выявил).

Я хочу иметь меню с пунктами с галочками в группе - так же, как простой макет RadioGroup. Я получаю меню, но никаких галочек нет.

Вот res / menu / options_menu.xml:

 <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <group android:checkableBehavior="single">
        <item
            android:id="@+id/item1"
            android:title="item1"
        />
        <item
            android:id="@+id/item2"
            android:title="item2"
        />
        <item
            android:id="@+id/item3"
            android:title="item3"
            android:checked="true"
        />
    </group>

</menu>

И, конечно, вот соответствующие методы в моей Деятельности:

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options_menu, menu);
    return true;
}

Это так просто, как я могу это сделать - есть идеи о том, что мне не хватает?

Ответы [ 3 ]

2 голосов
/ 24 ноября 2011

Я думаю, что вы пытаетесь создать меню параметров (оно отображается при нажатии кнопки меню) и в соответствии с этим

Примечание. Элементы меню в меню значков (из меню параметров) не могут отобразить флажок или переключатель. Если вы решили сделать элементы в Значок меню можно проверить, вы должны вручную указать проверенное состояние с помощью меняя значок и / или текст каждый раз, когда состояние меняется.

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

2 голосов
/ 05 декабря 2011

Вот обходной путь:

В вашем файле strings.xml вы можете встроить галочку Unicode. Есть два на выбор. Для этого проекта я предпочитаю более дружелюбную проверку \ u2714. Затем вы меняете местами строку с галочкой для строки без нее через onPrepareOptionsMenu () в зависимости от ситуации.

Вот код xml с двумя строками, одна с галочкой и одна без галочек:

    <string name="opp_random">unchecked</string>
    <string name="opp_random_check">\u2714 checked</string>

Удачного кодирования!

0 голосов
/ 24 ноября 2011

Как насчет

android:checkable="true"
...