I make two buttons to load the saved text and save it. in OnCreate :
etText = (EditText)findViewById(R.id.etText); //ΠΏΠΎΠ»Π΅ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° btnSave = (Button)findViewById(R.id.btnSave); //ΠΊΠ½ΠΎΠΏΠΊΠ° ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡΡ btnSave.setOnClickListener(this); btnLoad = (Button)findViewById(R.id.btnLoad); //ΠΊΠ½ΠΎΠΏΠΊΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ btnLoad.setOnClickListener(this); Farther
public void onClick(View v){ switch (v.getId()){ case R.id.btnSave: saveText(); break; case R.id.btnLoad: loadText(); break; default: break; } } private void saveText() { sPref = getPreferences(MODE_PRIVATE); SharedPreferences.Editor ed = sPref.edit(); ed.putString(SAVED_TEXT, etText.getText().toString()); ed.commit(); Toast.makeText(MainActivity.this, "Text saved", Toast.LENGTH_SHORT).show(); } private void loadText() { sPref = getPreferences(MODE_PRIVATE); String savedText = sPref.getString(SAVED_TEXT,""); etText.setText(savedText); Toast.makeText(MainActivity.this, "Text loaded", Toast.LENGTH_SHORT).show(); } As a result, the application fails with:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at <ΠΈΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΠ°>.MainActivity.onCreate(MainActivity.java:104) 104 ΡΡΡΠΎΠΊΠ°: btnSave.setOnClickListener(this); Markup Code:
<?xml version="1.0" encoding="utf-8"?> <Button android:id="@+id/btnLoad" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Load"> </Button> <Button android:id="@+id/btnSave" android:layout_width="105dp" android:layout_height="wrap_content" android:text="Save"> </Button> </LinearLayout> <EditText android:id="@+id/etText" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="top|left" android:inputType="textMultiLine" />