App Menü Taste funktioniert nicht - Bitte helfen!

  • 3 Antworten
  • Letztes Antwortdatum
M

MRRB

Neues Mitglied
0
Erstmal wünsche Ich euch einen guten Abend Leute,
Ich befasse mich seit kurzer Zeit mit Android Programmierung und habe bis jetzt einen Rechner Programmiert; Es gibt eine Auswahl an Rechen Methoden wenn man die Menütaste des Smartphones drückt, jedoch habe ich seit kurzem das Problem das der Menü Button der App neuerdings weder auf meinem noch auf anderen Smartphones funktioniert, komisch ist aber das es auf dem Emulator auf dem PC perfekt funktioniert.

Ich würde mich sehr freuen wenn Ihr mir dabei helfen könntet das Problem zu lösen. (Hab auch schon die SuFU benutz :smile: )

Quellcode:

Code:
package net.MeineApp;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
String sRechenmodus = "+";
boolean mainisopen = true;
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }


    List<String> RechnungenList = new ArrayList<String>();
    
    
   
    
    
    public void ButtonKlick (View view)
    {
   
    	
    	int zahl1;
    	
    	int zahl2;
    	
    	int Ergebniss = 0;
    	
   EditText Feld1 = (EditText)findViewById(R.id.zahl1);
   EditText Feld2 = (EditText)findViewById(R.id.zahl2);
   EditText FeldErgebniss = (EditText)findViewById(R.id.etErgebniss);
     
     
   if ( Feld1.getText().toString().length() == 0) {
	   if ( Feld1.getText().toString().length() == 0)
	   
	return; 
  
   }
   
   
   
   
  
    	zahl1= Integer.parseInt(Feld1.getText().toString());
    	zahl2= Integer.parseInt(Feld2.getText().toString());
        
    	
    	if (sRechenmodus.equals ("+")) {
    	Ergebniss= zahl1 + zahl2;    
    	}
        
    	
    	if (sRechenmodus.equals ("-")) {
        	Ergebniss= zahl1 - zahl2;    
        	}
    	
    	
    	if (sRechenmodus.equals ("/")) {
        	Ergebniss= zahl1 / zahl2;    
        	}
    	
    	if (sRechenmodus.equals ("*")) {
        	Ergebniss= zahl1 * zahl2;    
        	}
    	
    	
    		
        
        FeldErgebniss.setText(String.valueOf(Ergebniss));
   
        RechnungenList.add(Feld1.getText().toString() + " " + sRechenmodus + " " + Feld2.getText().toString() + " = " + FeldErgebniss.getText().toString());
        
        
   }
  
   
    

public boolean onCreateOptionsMenu(Menu menu) {
	MenuInflater inflater = getMenuInflater();
	inflater.inflate(R.menu.mainmenu, menu);
	
	return true;

	
}
	
@Override	

public boolean onOptionsItemSelected(MenuItem item)

{
	
	TextView TvRechenmodus = (TextView) findViewById (R.id.TvRechenmodus);
	
	
	if (item.toString().equals("Plus ( + )")) {
		TvRechenmodus.setText("Rechenmodus: Addieren");
        sRechenmodus = "+";
	
	}
	
	
	if (item.toString().equals("Minus ( - )")) {
		TvRechenmodus.setText("Rechenmodus: Subtrahieren");
		sRechenmodus = "-";
	}
	
	if (item.toString().equals("Mal ( * )")) {
		TvRechenmodus.setText("Rechenmodus: Multiplizieren");
		sRechenmodus = "*";
	}
	
	if (item.toString().equals("Durch ( / )")) {
		TvRechenmodus.setText("Rechenmodus: Dividieren");
		sRechenmodus = "/";
	
	}
	
if (item.toString().equals("Schließen"))	
	showDialog(10);
	
	

{
	
	
  }	
return true;
}
	

@Override protected Dialog onCreateDialog (int id) { switch (id) { case 10: Builder builder = new AlertDialog.Builder(this); builder.setMessage("Applikation wird geschlossen!"); builder.setCancelable(true); builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { MainActivity.this.finish(); } }); builder.setNegativeButton("Nein, doch nicht!", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Toast.makeText(getApplicationContext(), "Applikation wird fortgesetzt", Toast.LENGTH_LONG).show(); } }); AlertDialog dialog = builder.create(); dialog.show(); 

} return super.onCreateDialog(id); }

	
	
public void VerlaufKlick (View view) {

setContentView(R.layout.verlauf);
mainisopen = false;
	
    ArrayAdapter<String> adapterVerlauf = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, RechnungenList);

    		
    		
    		ListView lVerlauf = (ListView) findViewById(R.id.listView1);
            lVerlauf.setAdapter(adapterVerlauf);


    
    
    
    
}



	
	@Override
	
	public boolean onKeyDown(int keyCode, KeyEvent event)
	{
		if (keyCode == KeyEvent.KEYCODE_BACK && mainisopen == false) {
			mainisopen = true;
			setContentView(R.layout.activity_main);
		}	
		return true;
			
		}
		
	}


Danke im voraus! :smile:
 
Was heißt nicht funkrioniert? Wird einfach nicht geöffnet oder beendet sich die App?
Bei zweiteem LogCat, bei ersterem deine mainmenu.xml posten ;)

Gruß
 
Erstmal vielen Dank für deine Antwort StefMa,
wenn ich auf die Menü Taste drauf gehe dann öffnet sich das Menü der App nicht.

Tut mir leid das ich das mainmenu.xml und LogCat nicht gepostet habe, ich werde dies nun nachholen :smile:

LogCat: Tut mir echt leid, aber kann (wahrscheinlich wegen meiner Android Version) kein Log aufnehmen ohne Root, tut mir echt leid; Weisst du vielleicht was man da machen könnte?

mainmenu.xml:

Code:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/plus" android:title="Plus ( + )" android:visible="true" android:enabled="true"></item>
    <item android:id="@+id/minus" android:title="Minus ( - )" android:visible="true" android:enabled="true"></item>
    <item android:id="@+id/mal" android:title="Mal ( * )" android:visible="true" android:enabled="true"></item>
    <item android:id="@+id/durch" android:title="Durch ( / )" android:visible="true" android:enabled="true"></item>
    <item android:id="@+id/close" android:title="Schließen" android:visible="true" android:enabled="true"></item>
    

</menu>

Vielen Dank für deine Hilfe! :smile:
 
Den LogCat findest du bei Eclipse.
Wenn deine App abstürtzt, dann wird der dort angezeigt. Dazu bruachst du nichts rooten oder sonst. Nur das Handy anschließen, die App dort drauf installieren und dann wird es angezeigt. Beim Emulator eben so.

Zum 1:
Du brauchst bei deinen items kein android:visible und kein android:enabled. Das kannst du schon mal raus nehmen.

Zum 2:
Füge mal android:showAsAction="never" hinzu. Bei jedem. Das sagt, dass diese Menüs nicht der ActionBar angezeigt werden.

Zum 3:
Welche Android version hast du, und welches Theme benutzt bei der App? Wenn du nömlich die ActionBar ausblendest, ist es klar, dass das Menü dir nicht angezeigt wird ;)

Ansosten kannst du probioeren über deine onCreateOptionsMenu... ein @Override zu schreiben. Das fehlt nämlich bei dir auch.

Gruß
 

Ähnliche Themen

G
Antworten
0
Aufrufe
132
Gerdchen07
G
G
Antworten
1
Aufrufe
384
Gerdchen07
G
G
Antworten
13
Aufrufe
597
Gerdchen07
G
L
Antworten
2
Aufrufe
554
Lexub
L
migi01
Antworten
26
Aufrufe
1.990
migi01
migi01
Zurück
Oben Unten