【问题标题】:Best Method to Save and Read Data in Android在 Android 中保存和读取数据的最佳方法
【发布时间】:2013-05-30 09:34:24
【问题描述】:

我有一个使用代理浏览 url 连接的应用程序。但是我使用的代理主机、端口、用户名和密码使用的是硬编码。我已经做到了。但现在我想用一个引用数据的对象替换那个硬代码。所以用户可以输入他们想要的代理,并可以使用他们的用户名和密码。这是我的流程的样子。

所以第一个用户可以输入他们想要的连接名称、主机、端口等。然后“保存”它。然后在下一个活动中,它将读取该连接的数据,如果存在,用户只需单击并浏览它。如果没有,他们可以创建连接。如果要创建它(它将返回创建连接表单)。

谢谢,

【问题讨论】:

    标签: android database save sharedpreferences android-sqlite


    【解决方案1】:

    如果您只是想将数据发送到下一个活动,您可以使用intent.putExtra(); 并在下一个活动中调用getIntent().getStringExtras();

    如果您想保存数据直到用户下次更改,您可以使用SharedPrefrance,因为您的数据量很小。

    如果您的数据很敏感(想要提供更多安全性),您可以放入数据库或加密并放入数据库

    当您处理用户的用户名和密码时,您应该使用 sqlite 数据库。否则SharedPrefrance 最好。

    这是我的首选课程:

    public class GreetingCardData {
        public static final String SHARED_PREF_FILE     =   "greetingCardData";
        public static final String KEY_DO_NOT_SHOW      =   "doNotShow";
        public static final String KEY_CATEGORIES_JSON  =   "categoriesJson";   
        private SharedPreferences sharedPrefs;
        private Editor prefsEditor;
    
        public GreetingCardData(Context context) {
            this.sharedPrefs = context.getSharedPreferences(SHARED_PREF_FILE, 0);
            this.prefsEditor = sharedPrefs.edit();
        }   
    
        public void setDoNotShowFlag ( boolean flag ){
            prefsEditor.putBoolean( KEY_DO_NOT_SHOW, flag );
            prefsEditor.commit();
        }
    
        public boolean getDoNotShowFlag(){
            return sharedPrefs.getBoolean( KEY_DO_NOT_SHOW, false );
        }
    
        public void setGreetingcardJson( String jsonString ){
            prefsEditor.putString( KEY_CATEGORIES_JSON, jsonString );
            prefsEditor.commit();
        }
    
        public String getGreetingcardJsonString(){
            return sharedPrefs.getString(KEY_CATEGORIES_JSON, "");
        }    
    }
    

    来自 Activity 的调用: 保存数据:

    new  GreetingCardData(ActivityMain.this).setDoNotShowFlag(flag);
    

    获取数据:

    boolean flag =  new  GreetingCardData(ActivityMain.this).getDoNotShowFlag();
    

    【讨论】:

    • 是否使用 sharedPreference 只是暂时的?我的意思是当应用程序关闭或终止时。数据丢失了。
    • no no.. 在用户卸载应用程序之前,pref 中的数据不会丢失。如果您选择使用 pref,那么我必须建议您应该编写单独的类来设置并从中获取数据。它会让您非常轻松地将数据保存在 pref 中并取回。
    • 谢谢,我会试试的。因为 sharedpref 是我想在使用 dbase (sqlite) 方式之前尝试的方法。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 2015-10-15
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    相关资源
    最近更新 更多