android如何在子菜单中放置子菜单
我想使用以下xml将子菜单添加到现有子菜单:android如何在子菜单中放置子菜单,android,submenu,Android,Submenu,我想使用以下xml将子菜单添加到现有子菜单: <item android:id="@+id/chooseCountry" android:title="Choose Country"> <menu> <item android:id="@+id/india" android:title="India" > <menu> <item android:id="@+id
<item android:id="@+id/chooseCountry" android:title="Choose Country">
<menu>
<item android:id="@+id/india" android:title="India" >
<menu>
<item android:id="@+id/blor" android:title="Bangalore" />
<item android:id="@+id/delhi" android:title="Delhi" />
<item android:id="@+id/hyd" android:title="Hyderabad" />
</menu>
</item>
<item android:id="@+id/pak" android:title="Pakistan" />
<item android:id="@+id/africa" android:title="South Africa" />
</menu>
</item>
我不明白我做错了什么-有人能给我一些建议吗?嗯,显然这是不受支持的。您必须重新设计菜单。这似乎是安卓API 15级本机支持的。在早期版本中,解决方法是重定向菜单调用。使用xml示例,将其更改为子菜单是常规的隐藏的菜单项,并添加重定向占位符项:
<item android:id="@+id/india" android:title="India" android:visible="false">
<menu>
<item android:id="@+id/blor" android:title="Bangalore" />
<item android:id="@+id/delhi" android:title="Delhi" />
<item android:id="@+id/hyd" android:title="Hyderabad" />
</menu>
</item>
<item android:id="@+id/chooseCountry" android:title="Choose Country">
<menu>
<item android:id="@+id/india_redirect" android:title="India" />
<item android:id="@+id/pak" android:title="Pakistan" />
<item android:id="@+id/africa" android:title="South Africa" />
</menu>
注意对
performIdentifierAction
的调用是从视图发布到UI消息队列的。在旧版本的Android上,它可以立即调用,但在新版本上,它需要一条单独的消息才能工作。但如何操作?请告诉我任何想法。莫恩上面的解决方案很好,我建议你试试。我使用的是MinsdkVersion5,解决方案有效。
<item android:id="@+id/india" android:title="India" android:visible="false">
<menu>
<item android:id="@+id/blor" android:title="Bangalore" />
<item android:id="@+id/delhi" android:title="Delhi" />
<item android:id="@+id/hyd" android:title="Hyderabad" />
</menu>
</item>
<item android:id="@+id/chooseCountry" android:title="Choose Country">
<menu>
<item android:id="@+id/india_redirect" android:title="India" />
<item android:id="@+id/pak" android:title="Pakistan" />
<item android:id="@+id/africa" android:title="South Africa" />
</menu>
@Override
public boolean onMenuItemSelected( int id, MenuItem item)
{
switch ( item.getItemId() )
{
case R.id.india_redirect:
mSomeView.post( new Runnable()
{
public void run()
{
mOptionsMenu.performIdentifierAction( R.id.india, 0 );
}
} );
return true;
}
return super.onMenuItemSelected( id, item );
}