1

我想将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();
}

在此处输入图像描述

4

1 回答 1

3
SharedPreferences preferences = PreferenceManager
                        .getDefaultSharedPreferences(acivity.this);
                SharedPreferences.Editor editor = preferences.edit();
                editor.putString("a", "a");
                editor.commit();
于 2013-03-28T08:06:11.243 回答