2015-09-17 2 views
0

Я делаю страницу с 3 кнопками «сохранить», которая сохранит текст, «VIew» отобразит текст только что сохраненный, «чистый» очистит сохраненные данные.кнопка для сохранения и просмотра Android

Когда я запустил следующий код, приложение столкнулось и перестало работать, но оно не показало ошибки , что я должен изменить?

Спасибо!

public class MainActivity extends Activity implements View.OnClickListener { 

EditText editTextName; 
final String PREFS_NAME = "AOP_PREFS"; 
public static final String PREFS_KEY = "AOP_PREFS_String"; 
SharedPreferences settings = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    editTextName = (EditText)findViewById(R.id.editText); 
    Button saveButton = (Button)findViewById(R.id.save); 
    Button viewButton = (Button)findViewById(R.id.show); 
    Button cleanButton = (Button)findViewById(R.id.clear); 
    saveButton.setOnClickListener(this); 
    viewButton.setOnClickListener(this); 
    cleanButton.setOnClickListener(this); 

} 

@Override 
public void onClick(View v) { 

    if (v.getId() == R.id.save) { 
     String name = editTextName.getText().toString(); 
     SharedPreferences.Editor editor; 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); //Step 1 
     editor = settings.edit(); // Step 2 

     editor.putString(PREFS_KEY, name); // Step 3 
     editor.commit(); // Step 4 
    } 

    if (v.getId() == R.id.show) { 
     SharedPreferences settings; 
     String name; 
     SharedPreferences setting = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); //1 
     name = setting.getString(PREFS_KEY, null); //2 
     TextView textview1 = (TextView) findViewById(R.id.textView); 
     textview1.setText(name); 

    } 

    if (v.getId() == R.id.clear) { 
     SharedPreferences settings; 
     SharedPreferences.Editor editor; 

     SharedPreferences set = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); 
     editor = set.edit(); 

     editor.clear(); 
     editor.commit(); 
    } 
} 
+1

проверить LogCat – Aakash

+1

очистить свой проект, очистить свой LogCat и добавить активность в манифесте, если вы не добавили его ранее. –

+0

Вы должны проверить свой 'MainActivity.java' (также' имя пакета ') в файле' manifest.xml'. И проверьте, что ваши кнопки и edittexts доступны с одинаковыми идентификаторами в вашем 'activity_main.xml' –

ответ

0
public class MainActivity extends Activity implements View.OnClickListener { 

    EditText editTextName; 
    final String PREFS_NAME = "AOP_PREFS"; 
    public static final String PREFS_KEY = "AOP_PREFS_String"; 
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     editTextName = (EditText)findViewById(R.id.editText); 
     Button saveButton = (Button)findViewById(R.id.save); 
     Button viewButton = (Button)findViewById(R.id.show); 
     Button cleanButton = (Button)findViewById(R.id.clear); 
     saveButton.setOnClickListener(this); 
     viewButton.setOnClickListener(this); 
     cleanButton.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
    SharedPreferences.Editor editor; 
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); //Step 1 
    String name; 
    switch(v.getId()){ 
     case R.id.save: 
      String editTextName = editTextName.getText().toString(); 
      editor = settings.edit(); // Step 2 
      editor.putString(PREFS_KEY, editTextName); // Step 3 
      editor.commit(); // Step 4 
      break; 
     case R.id.show: 
      String name = setting.getString(PREFS_KEY, null); //2 
      TextView textview1 = (TextView) findViewById(R.id.textView); 
      textview1.setText(name); 
      break; 
     case R.id.clear: 
      editor = settings.edit(); 
      editor.setString(PREFS_KEY, ""); 
      editor.commit(); 
      break; 
    } 
} 
0
Try putting a try catch on show button listener code, i.e. 

if (v.getId() == R.id.show) { 
try{ 
     SharedPreferences settings; 
     String name; 
     SharedPreferences setting = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); //1 
     name = setting.getString(PREFS_KEY, null); //2 
     TextView textview1 = (TextView) findViewById(R.id.textView); 
     textview1.setText(name); 
}catch (NullPointerException e) 
{e.printStackTrace();} 
Смежные вопросы