从共享首选项检索和恢复文本视图信息



我有一个活动,允许用户输入笔记并将其存储在动态创建的文本视图中。但是,当使用离开活动并返回时,所有创建的文本视图都将消失。每当我返回到活动时,如何存储或检索所有这些创建的文本视图?另外,我认为每次添加新的文本视图时,我的共享首选项都会覆盖。有什么建议吗?

public class DocNoteActivity extends Activity {
private LinearLayout nLayout;
private EditText etDocNote;
private Button btnAdd1;
public static final String PREFS_NAME = "MyPrefsFile";
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.adddocnote);           
    etDocNote = (EditText) findViewById(R.id.editDocNote);
    btnAdd1 = (Button) findViewById(R.id.btnAdd1);
    nLayout = (LinearLayout) findViewById(R.id.linearLayout);
    TextView tvNote = new TextView(this);
    tvNote.setText("");         
    btnAdd1.setOnClickListener(onClick());
}
private OnClickListener onClick() {
    // TODO Auto-generated method stub
    return new OnClickListener(){
        public void onClick(View v) {
            // TODO Auto-generated method stub
            String newDocNote = etDocNote.getText().toString();
            nLayout.addView(createNewTextView(newDocNote));
            getSharedPreferences("myprefs", 0).edit().putString("etDocNote", newDocNote).commit();
        }
    };
}
private TextView createNewTextView(String newText) {
    // TODO Auto-generated method stub
    LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    TextView tvNote = new TextView(this);
    tvNote.setLayoutParams(lparams);
    tvNote.setText(newText);
    return tvNote;
}

}

如果你想检索笔记,你必须使用数据库(即SQLite),因为每次你在共享首选项中保存笔记时,它都会被覆盖。所以我建议你使用数据库。为此,这里有一些有用的资源,我认为对你有帮助。

1 - http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/

2 - http://www.vogella.com/articles/AndroidSQLite/article.html

3 - http://android-er.blogspot.in/2011/06/simple-example-using-androids-sqlite_02.html

注意 - 共享首选项用于存储键值对数据。大多数情况下,我们可以说是Android方式的一种会话管理。我主要将用户名和密码类型的数据存储在SharedPreferences中。

希望这有帮助。

最新更新