Autore Topic: OptionMenu e ContextMenu  (Letto 341 volte)

Offline neotrojan

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5 (5.0.1)
  • Sistema operativo:
    Windows 8.1 - Update 1
OptionMenu e ContextMenu
« il: 21 Gennaio 2015, 22:54:15 CET »
0
Buonasera raga,

mi sto esercitando con gli elementi OptionMenu e ContextMenu ma non compare l'ActionBar.
Non ho problemi con il ContextMenu, ma solo con l'OptionMenu.
Con il codice sotto indicato non vedo ActionBar, mentre se modifico l'estensione di MainActivity in ActionBarActivity anzichè Activity, vedo l'ActionBar ma i 3 item li vedo tutti raggruppati sotto una unica voce, anche se, come si vede dal codice, ho inserito l'attributo  ifRoom per la "Voce 2".

Raga potete aiutarmi?
Sono nelle vostre mani :-)


res/menu/menu_main
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/firstitem"
       android:title="Voce 1"
       android:showAsAction="never"/>
    <item android:id="@+id/seconditem"
       android:title="Voce 2"
       android:icon="@android:drawable/ic_menu_agenda"
       android:showAsAction="ifRoom"/>
    <item android:id="@+id/thirditem"
       android:title="Voce 3"
       android:showAsAction="never"/>
</menu>

MainActivity.java
Codice (Java): [Seleziona]
import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        TextView txt =(TextView) findViewById(R.id.testo);

        registerForContextMenu(txt);
    }


    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
    {
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater inflater=getMenuInflater();
        inflater.inflate(R.menu.main_menu,menu);
    }


    @Override
    public boolean onContextItemSelected(MenuItem item)
    {

        int id=item.getItemId();

        switch(id)
        {
            case R.id.firstitem:
                Toast.makeText(this,"Cliccato VOCE 1",Toast.LENGTH_LONG).show();
                break;
            case R.id.seconditem:
                Toast.makeText(this,"Cliccato VOCE 2",Toast.LENGTH_LONG).show();
                break;
            case R.id.thirditem:
                Toast.makeText(this,"Cliccato VOCE 3",Toast.LENGTH_LONG).show();
                break;
        }
        return super.onContextItemSelected(item);
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {

        int id=item.getItemId();

        switch(id)
        {
            case R.id.firstitem:
                Toast.makeText(this,"Cliccato VOCE 1",Toast.LENGTH_LONG).show();
                break;
            case R.id.seconditem:
                Toast.makeText(this,"Cliccato VOCE 2",Toast.LENGTH_LONG).show();
                break;
            case R.id.thirditem:
                Toast.makeText(this,"Cliccato VOCE 3",Toast.LENGTH_LONG).show();
                break;
        }
        return super.onOptionsItemSelected(item);
    }


    @Override
    public boolean onPrepareOptionsMenu(Menu menu)
    {
        return super.onPrepareOptionsMenu(menu);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {


        MenuInflater inflater=getMenuInflater();
        inflater.inflate(R.menu.main_menu,menu);


        MenuItem mi=menu.findItem(R.id.firstitem);

        mi.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {

                Toast.makeText(getApplicationContext(),"Dentro il LISTENER", Toast.LENGTH_SHORT).show();
                return false;
            }
        });

        return super.onCreateOptionsMenu(menu);
    }
}

res/layout/activity_main
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical" android:layout_width="match_parent"
   android:layout_height="match_parent">
    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/testo"
       android:text="Ciao mondo!"/>

</LinearLayout>




Offline neotrojan

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5 (5.0.1)
  • Sistema operativo:
    Windows 8.1 - Update 1
Re:OptionMenu e ContextMenu
« Risposta #1 il: 23 Gennaio 2015, 17:23:58 CET »
0
Ciao, era un problema dovuto all'aggiornamento delle singole SDK.