0

私はアンドロイドで壁紙アプリケーションに取り組んでいます。そこでは、アプリケーションのためにアセットからSDCARDの場所にいくつかの画像をコピーする必要があります。ただし、このプロセスは、アプリケーションの初回実行時に実行する必要があります。ユーザーが将来アプリケーションを使用するときに発生してはなりません。この目的のために共有設定を使用することを計画しました。しかし、成功していません。

クラスのプライベートメンバーとして設定を初期化しました。

private SharedPreferences preferences=null;
private boolean flagCopy;
//USING Shared Preferences FOR COPY ASSETS------
        if(preferences!=null){
            flagCopy = preferences.getBoolean("COPY_ASSETS", DO_NOT_COPY_ASSESTS);

        }else{
            preferences =getPreferences(MODE_PRIVATE);
            SharedPreferences.Editor editor = preferences.edit();
            editor.putBoolean("COPY_ASSETS", COPY_ASSESTS); // value to store
            editor.commit();
            flagCopy = true;
        }
        if(flagCopy){//IF FLAG IS FALSE THAN COPY THE IMAGES TO SDCARD FROM RES
            CopyAssets();
        }
4

1 に答える 1

0

設定オブジェクトは常に null であるため、flagcopy = true を作成している 2 番目の部分に常に移動します。以下のコードを参照してください

 preferences =getPreferences(MODE_PRIVATE);
   if(preferences!=null){
            flagCopy = preferences.getBoolean("COPY_ASSETS", COPY_ASSETS);


   if(flagcopy == COPY_ASSETS){
            SharedPreferences.Editor editor = preferences.edit();
            editor.putBoolean("COPY_ASSETS", DO_NOT_COPY_ASSESTS);
            editor.commit();
            flagCopy = true;
        }

        if(flagCopy){
            CopyAssets();
        }
于 2012-08-06T06:00:23.140 に答える