wake-up-neo.net

Bearbeiten eines Menüelements Klicken Sie auf Ereignis - Android

Ich möchte eine Absicht erstellen, die eine neue Aktivität startet, sobald auf ein Menüelement geklickt wird. Ich bin mir jedoch nicht sicher, wie ich dies tun soll. Ich habe die Android Dokumentation durchgelesen, aber meine Implementierung ist nicht korrekt. Eine Anleitung in die richtige Richtung würde helfen. Ich habe meinen Code unten aufgelistet und mein Problem auskommentiert Bereiche, ich denke, ich rufe die falsche Methode.

package com.jbsoft.SimpleFlashlight;

import Android.app.Activity;
import Android.content.Intent;
import Android.os.Bundle;
import Android.view.*;
import Android.view.MenuItem.OnMenuItemClickListener;
import Android.widget.Button;
import Android.widget.Toast;

public class SimpleFlashLightActivity extends Activity {


  Button GreenButton;   // Declare instances of buttons to use later
  Button BlueButton;

  private static final int OK_MENU_ITEM = Menu.FIRST;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    BlueButton = (Button) findViewById(R.id.bluebutton);
    BlueButton.setOnClickListener(new View.OnClickListener() {

      public void onClick(View v) {

        //Display msg when user clicks Blue Button
        showColorChangeMsg();

        // Switch Activities on click
        Intent blueintent = new Intent(SimpleFlashLightActivity.this,
                                       BlueFlashLightActivity.class);
        startActivity(blueintent);

      }
    });
    //Install listener for second button
    GreenButton = (Button) findViewById(R.id.greenbutton);
    GreenButton.setOnClickListener(new View.OnClickListener() {

      public void onClick(View v) {

        // Display msg when user clicks Green Button
        showColorChangeMsg();

        Intent greenintent = new        Intent(SimpleFlashLightActivity.this,
                                               GreenFlashLightActivty.class);
        startActivity(greenintent);

      }
    });

    ;

    /**************************************************************************************/

    // Method Declarations // THIS IS WHERE I'M HAVING A PROBLEM

    MenuItem AddColorButton = (MenuItem)findViewById(R.id.menu_insert);

    boolean onOptionsItemSelected(AddColorButton) {
      Intent intent = new  Intent(SimpleFlashLightActivity.this,
                                  BlueFlashLightActivity.class);
      startActivity(intent);
      return true;
      ;
    };
    /****************************************************************************************/

  }
  private void showColorChangeMsg()
  {
    Toast msgtoast = Toast.makeText(this.getBaseContext(), "SWITCH COLOR!",
                                    Toast.LENGTH_LONG);
    msgtoast.show();
  }
  private void showMsg(String msg) {
    Toast toast = Toast.makeText(this, msg, Toast.LENGTH_LONG);
    toast.show();
  }

  public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    MenuInflater mi = getMenuInflater();
    mi.inflate(R.menu.list_menu, menu);
    return true;

  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case OK_MENU_ITEM:
      showMsg("OK");
      break;
    }
    return super.onOptionsItemSelected(item);
  }

}
108
Jade Byfield

einfacher Code zum Erstellen eines Menüs.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.game_menu, menu);
    return true;
}

einfacher Code für das ausgewählte Menü

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    case R.id.new_game:
        newGame();
        return true;
    case R.id.help:
        showHelp();
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}

weitere Details finden Sie unter dem Link.

Link1

Link2

264
Niranj Patel

Fügen Sie folgenden Code hinzu

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.new_item:
        Intent i = new Intent(this,SecondActivity.class);
            this.startActivity(i);
            return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}
9
Half Moon

Menüpunktedatei sieht aus wie

res/menu/menu_main.xml

<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:app="http://schemas.Android.com/apk/res-auto"
    xmlns:tools="http://schemas.Android.com/tools"
    tools:context=".MainActivity">
    <item
        Android:id="@+id/settings"
        Android:title="Setting"
        app:showAsAction="never" />
    <item
        Android:id="@+id/my_activity"
        Android:title="My Activity"
        app:showAsAction="always"
        Android:icon="@Android:drawable/btn_radio"/>
</menu>

Java-Code sieht aus wie

src/MainActivity.Java

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();

      if (id == R.id.my_activity) {
            Intent intent1 = new Intent(this,MyActivity.class);
            this.startActivity(intent1);
            return true;
        }

        if (id == R.id.settings) {
            Toast.makeText(this, "Setting", Toast.LENGTH_LONG).show();
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

Fügen Sie Ihrer AndroidManifest.xml-Datei den folgenden Code hinzu

<activity
            Android:name=".MyActivity"
            Android:label="@string/app_name" >
        </activity>

Ich hoffe es hilft dir.

5

Dieser Code ist Arbeit für mich

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();

     if (id == R.id.action_settings) {
  // add your action here that you want
        return true;
    }

    else if (id==R.id.login)
     {
         // add your action here that you want
     }


    return super.onOptionsItemSelected(item);
}
2
Basant

zusätzlich zu den in Ihrer Frage angezeigten Optionen besteht die Möglichkeit, die Aktion direkt in Ihrer XML-Datei über das Menü auszuführen. Beispiel:

<item
   Android:id="@+id/OK_MENU_ITEM"
   Android:onClick="iraActivitySobre" />

Und für Ihre Java (Activity) -Datei müssen Sie eine öffentliche Methode mit einem einzelnen Parameter vom Typ MenuItem implementieren, zum Beispiel:

 private void showMsgDirectMenuXml(MenuItem item) {
    Toast toast = Toast.makeText(this, "OK", Toast.LENGTH_LONG);
    toast.show();
  }

HINWEIS: Diese Methode hat ein ähnliches Verhalten wie onOptionsItemSelected (Menüelement).

0
Jackson.Roberio