2016-08-10 2 views
0

mein Problem ist wie folgt:App geht in die falsche Richtung. Während Zurück-Taste geht nach rechts ein

Wenn ich auf eine Schaltfläche in meiner ActionBar klicken, geht es zu der falschen Aktivität. Während ich mich bei der falschen Aktivität befinde und den Zurück-Knopf drücke. Es geht zu dem, zu dem es gehen sollte.

Es soll zum AddActivity gehen, wenn die Taste gedrückt wird.

Wenn ein anderer Code angefordert wird, fragen Sie bitte.

MapsActivity

public class MapsActivity extends AppCompatActivity implements OnMapReadyCallback, 
     GoogleApiClient.ConnectionCallbacks, 
     GoogleApiClient.OnConnectionFailedListener, 
     LocationListener { 

    private GoogleMap mMap; 
    private GoogleApiClient mGoogleApiClient; 
    private LocationRequest mLocationRequest; 
    private Location mLastLocation; 
    private Marker mCurrLocationMarker; 

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

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
      checkLocationPermission(); 
     } 

     // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 

     initialize(); 

    } 

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

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.action_add_marker: 
       // User chose the "Add marker" item 
       Intent addActivityIntent = new Intent(MapsActivity.this, AddActivity.class); 
       startActivity(addActivityIntent); 
      case R.id.action_logout: 
       // User chose the "Uitloggen" item 
       PokeMapperModel.getInstance().setCurrentUser(null); 
       Intent loginActivityIntent = new Intent(MapsActivity.this, LoginActivity.class); 
       startActivity(loginActivityIntent); 
       finish(); 
      default: 
       // Action not recognized 
       return super.onOptionsItemSelected(item); 
     } 
    } 

    private boolean isUserLoggedIn() { 
     return PokeMapperModel.getInstance().getCurrentUser() != null; 
    } 

    private void initialize() { 
     if (!isUserLoggedIn()) { 
      Intent intent = new Intent(MapsActivity.this, LoginActivity.class); 
      startActivity(intent); 
      finish(); 
     } 
    } 

Antwort

5

vergessen haben break; nach jedem Falle switch-Anweisung hinzuzufügen.

BEARBEITEN: SIE MÜSSEN default: NICHT HINZUFÜGEN, überprüfen Sie den aktualisierten Code.

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.action_add_marker: 
       // User chose the "Add marker" item 
       Intent addActivityIntent = new Intent(MapsActivity.this, AddActivity.class); 
       startActivity(addActivityIntent); 
       break; 
      case R.id.action_logout: 
       // User chose the "Uitloggen" item 
       PokeMapperModel.getInstance().setCurrentUser(null); 
       Intent loginActivityIntent = new Intent(MapsActivity.this, LoginActivity.class); 
       startActivity(loginActivityIntent); 
       finish(); 
       break; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
+0

es einmal, dann sagt er es eine return-Anweisung fehlt. Wo repariere ich das? – Hees1989

+0

Das ist es, danke! – Hees1989

+0

Ich verstehe nicht, warum ich immer Pause Aussage vermisse !! – Vijay

1

Sie müssen return true;

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.one: 
      one(); 
      return true; 
     case R.id.two: 
      two(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 
Verwandte Themen