如何在android中的共享首选项中使用主键?

时间:2015-03-31 11:45:16

标签: java android sqlite

我是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());

    }

}

4 个答案:

答案 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());

        }