java - 如何让我的 Android 应用程序将 SharedPreferences 作为一组首选项,以便我可以通过按钮控制它并清除首选项

标签 java android sharedpreferences preferences

我试图拥有 SharedPreferences 一次并将其控制为不同的方法,而不是在不同的方法中拥有不同的 SharedPreferences 。我在 onCreate、LoadPreferences、SavePreferences 和 ClearTextViews 方法中有 SharedPreferences。我想要这样做,以便将 EditText 中输入的文本的首选项保存到 TextViews 中,然后能够使用按钮清除它们。如果可以,请你帮助我。相关代码如下:

公共(public)类notesActivity扩展Activity实现OnClickListener {

Button saveNote;
Button clearText;
EditText note;
TextView textSavedNote1, textSavedNote2, textSavedNote3, textSavedNote4, textSavedNote5, textSavedNote6;
SharedPreferences spNote;

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_notes);

    saveNote = (Button)this.findViewById(R.id.saveNotes);
    saveNote.setOnClickListener(this);

    clearText = (Button)this.findViewById(R.id.clearAllText);
    clearText.setOnClickListener(this);

    textSavedNote1 = (TextView)findViewById(R.id.stringSavedNote1);
    textSavedNote2 = (TextView)findViewById(R.id.stringSavedNote2);
    textSavedNote3 = (TextView)findViewById(R.id.stringSavedNote3);
    textSavedNote4 = (TextView)findViewById(R.id.stringSavedNote4);
    textSavedNote5 = (TextView)findViewById(R.id.stringSavedNote5);
    textSavedNote6 = (TextView)findViewById(R.id.stringSavedNote6);

    note = (EditText)this.findViewById(R.id.notes);

    spNote = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor edit = spNote.edit();
    edit.putString("note"+saveNote,note.getText().toString());
    edit.commit();
}



public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    // Goes back to the home screen
    case R.id.item1:  Intent i = new Intent(notesActivity.this, UserSettingActivity.class);
    startActivity(i);

    case R.id.item2:
            Intent intent = new Intent(this, MainActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
            return true;
    // Refreshes the page.   
    case R.id.item3:
            finish();
            startActivity(getIntent());
        default:
            return super.onOptionsItemSelected(item);
    }
}


public void onClick (View v){
    if(v==saveNote){
        SavePreferences("NOTE1", note.getText().toString());
        LoadPreferences();
        note.setText("");
        if(textSavedNote1.getText().toString().length()>0){
            SavePreferences("NOTE2", note.getText().toString());
            LoadPreferences();
            note.setText("");
        }
        else{
    }
}
    else if(v==clearText){
        ClearTextViews();
    }
}

private void SavePreferences(String key, String value){
    SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString(key, value);
    editor.commit();
   }

private void LoadPreferences(){
    SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
    String strSavedNote1 = sharedPreferences.getString("NOTE1", "");
    String strSavedNote2 = sharedPreferences.getString("NOTE2", "");
    String strSavedNote3 = sharedPreferences.getString("NOTE3", "");
    String strSavedNote4 = sharedPreferences.getString("NOTE4", "");
    String strSavedNote5 = sharedPreferences.getString("NOTE5", "");
    String strSavedNote6 = sharedPreferences.getString("NOTE6", "");
    textSavedNote1.setText(strSavedNote1);
    textSavedNote2.setText(strSavedNote2);
    textSavedNote3.setText(strSavedNote3);
    textSavedNote4.setText(strSavedNote4);
    textSavedNote5.setText(strSavedNote5);
    textSavedNote6.setText(strSavedNote6);
   }

private void ClearTextViews(){ 

    SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.clear();
    editor.commit();

}

}

最佳答案

关于java - 如何让我的 Android 应用程序将 SharedPreferences 作为一组首选项,以便我可以通过按钮控制它并清除首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15833447/

相关文章:

java - Spring自定义oauth2响应数据

java - Hadoop> WordCount按值排序

java - 关于Android布局文件

android - 使用所需的时区从毫秒显示正确的时间

java - 如何将共享首选项文件从内部存储传输到外部存储?

java - Android RealmList<Integer> 和 RealmList<String>

android - 解析 getLayoutInflater 时出错(未定义)

java - 尝试在 Android 中使用全息主题不起作用

android - 解释在不同 Android 设备上访问 SharedPreferences 的性能差异

Android SharedPreferences 没有改变