Closed. This question needs debugging details。它当前不接受答案。












想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。

5年前关闭。





当用户在配置文件中更改显示名称时,我想再次存储共享首选项

现在,数据库中的数据已更改,但我不知道更改共享首选项



请帮帮我。

码:



    private static final String PREFERENCE_KEY = "pref_user";
    private static final String DISPLAY_KEY = "user_display_name";
    SharedPreferences sh_pref;
    SharedPreferences.Editor sh_edit;

    UserPreference setting;
    private int user_id;
    private String getuser_id;
    private String user_display_name;

    EditText EDTEditdisplay;


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



        // custom my action bar
        ActionBar actionbar = getActionBar();
        actionbar .setTitle("CHANGE DISPLAY NAME");
        // back navigation
        actionbar.setDisplayHomeAsUpEnabled(true);
        // hide icon app
        getActionBar().setDisplayShowHomeEnabled(false);

        setting = new UserPreference(ChangeDisplayNameActivity.this);
        user_id = setting.getUserID();
        getuser_id = String.valueOf(user_id);

        Button BTNsaveDisplayname = (Button) findViewById(R.id.BTNsaveDisplayname);
        BTNsaveDisplayname.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                UpdateDisplayName();
            }
        });


    }//end onCreate


    public boolean UpdateDisplayName() {

        EDTEditdisplay = (EditText) findViewById(R.id.EDTEditdisplay);

        // Dialog alert
        AlertDialog.Builder alert = new AlertDialog.Builder(this);

        // Check Displayname
        if(EDTEditdisplay.getText().length() == 0)
        {
            alert.setMessage("Please input new display name");
            alert.show();
            EDTEditdisplay.requestFocus();
            return false;
        }

        // gettext from edittext
        user_display_name = EDTEditdisplay.getText().toString();

        List<NameValuePair> update_display = new ArrayList<NameValuePair>();
        update_display.add(new BasicNameValuePair("user_id", getuser_id));
        update_display.add(new BasicNameValuePair("user_display_name", user_display_name));

        JSONParser jspaser = new JSONParser();
        String url = "http://su13540254.2th.asia/Hello_Oppa/update_displayname.php";
        String dataJSON = jspaser.makeHttpRequest(url,JSONParser.methodPost, update_display);


        Toast.makeText(getApplicationContext(),
                 "Change display name, Complete", Toast.LENGTH_SHORT).show();

        Intent intent = new Intent(ChangeDisplayNameActivity.this, MainActivity.class);
        startActivity(intent);

        return true;

    }//end UpdateDisplayName

最佳答案

将显示名称保存在数据库中后,再次将该代码放在您使用相同键保存共享首选项的位置,它将替换您的显示名称为共享首选项。例如。
保存:

SharedPreferences mPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
mPreferences.edit().putString("DISPLAY_NAME",user_display_name).commit();


检索:

SharedPreferences mPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
String display_name = mPreferences.getString("DISPLAY_NAME","Default Name");

关于java - 在配置文件中编辑显示名称时如何存储重复共享首选项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29045677/

10-09 17:24