2016-05-27 19 views
0

Ich habe ein Problem, wenn ich versuche, das Einstellungssymbol in der Aktionsleiste zu drücken und auf die Einstellungsseite in meinem Android-Projekt zu gehen. HierWie gehe ich auf eine andere Seite, wenn ich die Einstellungsschaltfläche in der Aktionsleiste drücke?

ist der Code:

public boolean onOptionsItemSelected(MenuItem item) { 

     if(item.getItemId() == R.id.settings) { 
      startActivity(new Intent(ProfileFragment.this, SettingsActivity.class)); 
     } 

     return super.onOptionsItemSelected(item); 
} 

Der Fehler ist in ProfileFragment.this, SettingsActivity.class Linie. Es gibt keinen schwerwiegenden Fehler, aber unter dem Code befindet sich eine rote Linie.

Wie kann ich das lösen?

Danke für die Antworten.

+0

Pass Kontext bei STARTAC Versuchen tivity (neue Absicht ("context", SettingsActivity.class)); –

+0

versucht, aber es ist immer noch ein Fehler. –

+0

übergeben Sie diese getActivity(). GetApplicationContext(); –

Antwort

2

verwenden

public boolean onOptionsItemSelected(MenuItem item) { 

     if(item.getItemId() == R.id.settings) { 
      startActivity(new Intent(getContext(), SettingsActivity.class)); 
     } 

     return super.onOptionsItemSelected(item); 
    } 
0

ändern diese:

startActivity(new Intent(ProfileFragment.this, SettingsActivity.class)); 

zu:

startActivity(new Intent(getActivity(), SettingsActivity.class)); 
0

Diese

public boolean onOptionsItemSelected(MenuItem item) { 

      if(item.getItemId() == R.id.settings) { 
       startActivity(new Intent(getActivity().getApplicationContext(), SettingsActivity.class)); 
      } 

      return super.onOptionsItemSelected(item); 
    }