Подменю в меню в меню? - PullRequest
0 голосов
/ 07 июня 2010

При нажатии на кнопку меню у меня есть 2 варианта: Добавить и еще. По щелчку более у меня есть 3 варианта: организация, экспорт и выход По щелчку «Организовать» я хочу 5 других вариантов.

По щелчку больше я получаю свое подменю. Но я хочу другие 5 вариантов по щелчку организовать. Как мне продолжить ???

Мой код по частям выглядит следующим образом: XML-файл -------------------------------

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

   <item    
    android:id="@+id/more"    
    android:title="@string/moreMenu"    
    android:icon="@drawable/icon">
    <menu>
        <item android:id="@+id/Organize"
        android:title="@string/Organize" />

        <item android:id="@+id/Export"
        android:title="@string/Export" />
    </menu>  
   </item> 

   <item    
    android:id="@+id/add"    
    android:title="@string/addMenu"  
    android:icon="@drawable/add"/>
   </menu>

Java -------------------------

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class ToDoList extends Activity {
 Menu menu;
  public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.todolist); 

   }



  public boolean onCreateOptionsMenu(Menu menu) {   
         super.onCreateOptionsMenu(menu);   
         getMenuInflater().inflate(R.layout.categorymenu, menu);

         return true; 


     }  
   public boolean onOptionsItemSelected(MenuItem item) {   
         switch (item.getItemId()) { 

         case R.id.more:   
               Toast.makeText(this, "You pressed more!", Toast.LENGTH_LONG).show();
//(What needs to be done from here)
                    return true;

         case R.id.add:
           Toast.makeText(this, "You pressed add!", Toast.LENGTH_LONG).show();
          return true;
           }
         return false;
         }
   public boolean onPrepareOptionsMenu(Menu menu) {   
                   return true;   
     }
  }

1 Ответ

2 голосов
/ 07 июня 2010

Как видно из Создание меню подменю не могут содержать подменю.

Вы можете отобразить контекстное меню после нажатия на пункт в меню параметров.Это может показать ваши пять вариантов в плавающем виде над экраном.

Вы должны перезаписать onCreateContextMenu, чтобы создать ContextMenu, и я думаю, что вы должны вызвать contextMenu вручную в методе onOptionsItemSelected.Информацию о том, как создать контекстное меню, см. В этом абзаце в статье, упомянутой выше.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...