Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android如何在子菜单中放置子菜单_Android_Submenu - Fatal编程技术网

android如何在子菜单中放置子菜单

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

我想使用以下xml将子菜单添加到现有子菜单:

<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 );
}