2014-07-22 4 views
-1

J'écris un code android ... J'ai fait un élément de menu ("+") en haut à droite. J'ai défini le OnClick pour cet article comme vous voyez dans mon code mais MyApp ne fonctionne pas et dit malheureusement arrêté. Avant cela j'ai utiliséOnClick dans android ne fonctionne pas

public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.add: 
       // Toast.makeText(this, "Adding button selected", Toast.LENGTH_SHORT).show(); 
       return true; 
      default: 
       return true; 
     } 
    } 

lorsque l'utilisateur clique sur cet élément et cela a fonctionné. Mais j'ai besoin de savoir ce que je devrais faire de cette façon ?! Parce qu'après que je veux faire la mise en page (dialogue) de sorte que lorsque je pousse cet élément qui montre dialogue et je pense que je devrais utiliser cette méthode pour faire

MyActivity:

package com.example.myapp; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.app.Dialog; 
import android.content.DialogInterface; 
import android.os.Bundle; 
import android.view.*; 
import android.widget.TextView; 
import android.widget.Toast; 

public class MyActivity extends Activity { 
    /** 
    * Called when the activity is first created. 
    */ 
    //@Override 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 

    public boolean onCreateMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     return true; 
    } 

    public boolean onCreateOptionsMenu(Menu menu) { 

     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.menu, menu); 
     return true; 
    } 

    public void AddOnClick (View view) { 
     Toast.makeText(this, "Button 1 pressed", 
       Toast.LENGTH_LONG).show(); 
    } 

} 

menu.xml:

<?xml version="1.0" encoding="utf-8"?> 

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/add" 
      android:icon="@drawable/plus" 
      android:title="Adding" 
      android:orderInCategory="50" 
      android:showAsAction="always" 
      android:onClick="AddOnClick" 
    /> 
</menu> 

Où est-ce que je me trompe ?! Est-ce que ma façon de montrer le dialogue est juste ou je devrais faire autre chose ?! Tnx à l'avance

+2

Si votre application se bloque, s'il vous plaît poster la trace de la pile – Shlublu

+1

supprimer android : onCliquez dans le menu, vous n'en avez pas besoin – Sandro

Répondre

-1
public boolean onCreateMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    return true; 
} 

changement comme celui-ci:

public boolean onCreateMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater().inflate(R.menu.addXml, menu); 
    return true; 
} 
+0

il n'y a pas moyen que ce soit correct – EpicPandaForce

+0

Si vous pensez qu'il n'y a pas de solution, vous pouvez essayer de retourner super.onCreateOptionsMenu (menu); – ihsanbal

+0

La valeur de retour de 'inflate()' est 'void'. Votre code ne compilerait pas. Ceci, malgré l'absence de formatage: @Override public boolean onCreateOptionsMenu (menu Menu) { getMenuInflater(). Gonfle (R.menu.container, menu); return super.onCreateOptionsMenu (menu); } – EpicPandaForce

0

la signature est fausse. Il devrait être

public void AddOnClick (MenuItem item) 

car elle est déclarée dans une MenuItem

1

procédez comme suit et supprimer Android: onClick dans le menu

MenuInflater menuInflater = getMenuInflater(); 
     menuInflater.inflate(R.menu.addXml, menu); 
+0

return super.onCreateOptionsMenu (menu); – EpicPandaForce