Я новичок на этом форуме и в самой разработке Android, поэтому мой вопрос, вероятно, будет очень глупым, и я прошу прощения за это. Я начал читать Dev Guide на сайте developer.android.com, и пока не появилась часть с контекстными меню, все работало нормально. Теперь я попытался создать контекстное меню с подменю, которое содержит некоторые проверяемые элементы. Поэтому я добавил подменю и элементы в мой menu.xml и некоторые методы item.setchecked(true) в мой метод onContextItemSelected(...).
меню.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/info"
android:title="@string/info" />
<item android:title="@string/change">
<menu>
<item android:id="@+id/checkable_item1"
android:checked="true"
android:checkable="true"
android:title="@string/hello"/>
<item android:id="@+id/checkable_item2"
android:checkable="true"
android:title="@string/moin"/>
<item android:id="@+id/checkable_item3"
android:checkable="true"
android:title="@string/aloha"/>
</menu>
</item>
</menu>
часть моего файла .java
...
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater1 = getMenuInflater();
inflater1.inflate(R.menu.context_menu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item)
{
switch(item.getItemId())
{
case R.id.checkable_item1:
if(item.isChecked()) item.setChecked(false);
else item.setChecked(true);
return true;
case R.id.checkable_item2:
if(item.isChecked()) item.setChecked(false);
else item.setChecked(true);
return true;
case R.id.checkable_item3:
if(item.isChecked()) item.setChecked(false);
else item.setChecked(true);
return true;
default:
return super.onContextItemSelected(item);
}
}
...
Теперь проблема в том, что когда я открываю меню и нажимаю один из проверяемых элементов, я вижу, что зеленая галочка появляется в маленьком поле непосредственно перед закрытием контекстного меню, но когда я снова открываю меню, галочка исчезла. Теперь я действительно не знаю, почему галочка не остается в коробке. Было бы неплохо, если бы кто-нибудь мог дать мне подсказку и сказать, что я делаю неправильно. Благодарим вас заранее
Жан-Клод91