2013-03-28 5 views
0

Я хочу сохранить значение EditText (которое находится в AlertDialog) поле в SharedPreference. Его показ NullPointerException на этой линии SharedPreferences.Editor editor = sp.edit(); ** Примечание: код работает без SharedPreferences **Общие предпочтения в пользовательском диалоговом окне оповещений

private void myDialog() { 
    // TODO Auto-generated method stub 
    LayoutInflater inflater = LayoutInflater.from(getApplicationContext()); 
    View view = inflater.inflate(R.layout.cus_dialog, null); 
    AlertDialog.Builder ab = new AlertDialog.Builder(this); 
    ab.setView(view); 
    final EditText input = (EditText) view.findViewById(R.id.etValue); 

    ab.setCancelable(false); 
    ab.setPositiveButton("Send", new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      String s = input.getText().toString(); 
      SharedPreferences.Editor editor = sp.edit(); 
      editor.putString("A", s); 
      editor.commit(); 
      Toast.makeText(getApplicationContext(), "" + s, 
        Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    ab.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      // TODO Auto-generated method stub 
      dialog.cancel(); 
     } 
    }); 
    AlertDialog ad = ab.create(); 

    ad.show(); 
} 

enter image description here

+0

где объявлена ​​переменная зр? –

ответ

3
SharedPreferences preferences = PreferenceManager 
         .getDefaultSharedPreferences(acivity.this); 
       SharedPreferences.Editor editor = preferences.edit(); 
       editor.putString("a", "a"); 
       editor.commit();