我是android的新手。我想在我的应用中使用共享偏好。我想使用id作为主键,以便每当我添加新的字符串值时它都会自动递增。它可以通过使用SQLite来完成,但这是一项非常漫长的任务。我想让我的应用变得简单。
insert.xml文件如下:
package com.example.shiza.dailyquranquote;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
public class InsertVerse extends ActionBarActivity {
EditText verseContent;
EditText verseId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_insert_verse);
}
public void saveVerse( View view)
{
verseContent = (EditText)findViewById(R.id.insertVerse);
verseId = (EditText)findViewById(R.id.insertId);
SharedPreferences sharedPreferences = getSharedPreferences("QuranVerse",0);
Editor editor = sharedPreferences.edit();
editor.putInt("id", Integer.parseInt( verseId.getText().toString()));
editor.putString("verse", verseContent.getText().toString());
}
}
答案 0 :(得分:1)
SharedPreferences不是数据库。它是存储了对键/值的文件。
所以,例如,如果你把一对" id" / 5,你放了一对" id" / 6,当这对" id" / 5将被新的" id" / 6替换。
请看一下:
http://developer.android.com/reference/android/content/SharedPreferences.html
http://developer.android.com/guide/topics/data/data-storage.html#pref
编辑1
SharedPreferences通常用于存储设置,计数器,参数,有关设备所有者的信息,......
数据库用于存储多个相同的记录,例如,用户列表,产品列表,......
答案 1 :(得分:1)
答案 2 :(得分:1)
在SharedPreferences
中,您无法设置主键,因为它是键/值对。但是,你肯定可以为一个键(由特殊字符分隔)提供多个值
id: 0;1;2
和
name: John Smith;Rickey Watson;Martin Guptill
现在,
0 is John Smith,
1 is Ricky watson and
2 is Marting Guptill.
这可能是你正在寻找的东西......
答案 3 :(得分:0)
仅适用于如果您需要一条记录(密钥),并且每次添加新字符串时,ID计数都会递增。 但如果您有多条记录,请关注@LaurentY和@ user94685231
public void saveVerse( View view)
{
verseContent = (EditText)findViewById(R.id.insertVerse);
verseId = (EditText)findViewById(R.id.insertId);
SharedPreferences sharedPreferences = getSharedPreferences("QuranVerse",0);
int count=sharedPreferences.getInt("id",0);
count++;
Editor editor = sharedPreferences.edit();
editor.putInt("id", count);
editor.putString("verse", verseContent.getText().toString());
}