2017-02-01 1 views
0

Guten Abend. Oder wann immer Sie das gerade lesen. In Android Studio, als ich die ersten Phasen meiner App entwickelte, stieß ich auf ein Problem, und ich kann die Antwort nicht finden. Ich versuche, SharedPrefereces zu verwenden, um Benutzereingaben zu speichern, aber wenn ich versuche, die Präferenzen [editor = SharedPreferences.edit();] zu bearbeiten, heißt es, dass edit() eine nicht statische Methode ist und nicht aus einem statischen Kontext abgeleitet werden kann.Nicht-statische edit() kann nicht aus einem statischen Kontext referenziert werden

Hier ist der Code.

public class TheButton AppCompatActivity erstreckt {

EditText ed1, ed2, ed3, ed4; 

/*EditText nameInput; 
EditText ageInput; 
EditText occupationInput; 
EditText genderInput; 
Button startButtonFinish;*/ 
protected static final String MyPREFERENCES = ""; 
public static final String nameInput = ""; 
public static final int ageInput = 0; 
public static final String occupationInput = ""; 
public static final String genderInput = ""; 

SharedPreferences sharedpreferences; 
SharedPreferences.Editor editor; 

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

    ed1 = (EditText) findViewById(R.id.nameInput); 
    ed2 = (EditText) findViewById(R.id.ageInput); 
    ed3 = (EditText) findViewById(R.id.occupationInput); 
    ed4 = (EditText) findViewById(R.id.genderInput); 

    sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 

    Button startButtonFinish = (Button) findViewById(R.id.startButtonFinish); 
    startButtonFinish.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String nL = ed1.getText().toString(); 
      String oI = ed3.getText().toString(); 
      String gI = ed4.getText().toString(); 

      //Gives me an error on edit() saying that it edit() is a non-static 
      // class and they cannot be referenced from a static context 
      editor = SharedPreferences.edit(); 

      editor.putString(nameInput,nL); 
      editor.putString(occupationInput, oI); 
      editor.putString(genderInput, gI); 
      editor.commit(); 

      startActivity(new Intent(TheButton.this, thebutton2.class)); 
     } 
    }); 



} 

werde ich jede Hilfe dankbar. Vielen Dank!

Antwort

0

Anstelle dieser Zeileneditor = SharedPreferences.edit(); sollten Sie edit-Methode von sharedpreferences Objekt aufrufen, die in Ihrem Code initialisiert wird.

+0

Vielen Dank auch Ihnen! –

+0

Danke !!!!!!!!!! – priyanka

0

Sie sollten die Methode .edit() aufrufen, indem Sie das Objekt SharedPreferences erstellen. Ändern SharedPreferences in Zeile von editor = SharedPreferences.edit(); zu editor = sharedPreferences.edit();

EditText ed1, ed2, ed3, ed4; 

/*EditText nameInput; 
EditText ageInput; 
EditText occupationInput; 
EditText genderInput; 
Button startButtonFinish;*/ 
protected static final String MyPREFERENCES = ""; 
public static final String nameInput = ""; 
public static final int ageInput = 0; 
public static final String occupationInput = ""; 
public static final String genderInput = ""; 

SharedPreferences sharedpreferences; 
SharedPreferences.Editor editor; 

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

    ed1 = (EditText) findViewById(R.id.nameInput); 
    ed2 = (EditText) findViewById(R.id.ageInput); 
    ed3 = (EditText) findViewById(R.id.occupationInput); 
    ed4 = (EditText) findViewById(R.id.genderInput); 

    sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 

    Button startButtonFinish = (Button) findViewById(R.id.startButtonFinish); 
    startButtonFinish.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String nL = ed1.getText().toString(); 
      String oI = ed3.getText().toString(); 
      String gI = ed4.getText().toString(); 

      //Gives me an error on edit() saying that it edit() is a non-static 
      // class and they cannot be referenced from a static context 
      editor = sharedPreferences.edit(); 

      editor.putString(nameInput,nL); 
      editor.putString(occupationInput, oI); 
      editor.putString(genderInput, gI); 
      editor.commit(); 

      startActivity(new Intent(TheButton.this, thebutton2.class)); 
     } 
    }); 



} 
+0

Vielen Dank! –

Verwandte Themen