4

私はAndroidの初心者で、現在ログイン画面の作成に熱心に取り組んでいます。

ユーザー名とパスワードを1つのクラスに保存し、別のクラスから取得する最も簡単な方法を見つける必要があります。Googleがいくつかの方法を提供していることを確認してください:http://developer.android.com/guide/topics/data/data-storage.html

どれが最も効率的でコーディングが簡単ですか?

ありがとう!

4

5 に答える 5

4

ユーザー名とパスワードの保存などのログイン画面タスクには、共有設定を使用できます。ここでは、共有設定を使用するためのカスタムメソッドを作成しました。メソッドを呼び出しsavePreferences()てキーと値を入力し(savePreferences()XMLに基づく)、同様にキーを使用してLoadを呼び出します。deletePreferences()そして最後に、LOGOUT を呼び出すことを忘れないでください。

/**
 *   Method used to get Shared Preferences */

public SharedPreferences getPreferences() 
{
    return getSharedPreferences(<PREFRENCE_FILE_NAME>, MODE_PRIVATE);
}
/**
 *  Method used to save Preferences */
public void savePreferences(String key, String value) 
{
    SharedPreferences sharedPreferences = getPreferences();
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString(key, value);
    editor.commit();
}
/**
 *  Method used to load Preferences */
public String loadPreferences(String key) 
{
    try {
        SharedPreferences sharedPreferences = getPreferences();
        String strSavedMemo = sharedPreferences.getString(key, "");
        return strSavedMemo;
    } catch (NullPointerException nullPointerException) 
    {
        Log.e("Error caused at  TelaSketchUtin loadPreferences method",
                ">======>" + nullPointerException);
        return null;
    }
}
/**
 *  Method used to delete Preferences */
public boolean deletePreferences(String key)
{
    SharedPreferences.Editor editor=getPreferences().edit();
    editor.remove(key).commit();
    return false;
}

これがお役に立てば幸いです。+1することを忘れないでください。

于 2012-09-28T12:29:36.663 に答える
4

使用する設定ファイル名とキーを保存するために、いくつかの統計を定義します。

public static final String PREFS_NAME = "MyPrefsFile";
private static final String PREF_USERNAME = "username";
private static final String PREF_PASSWORD = "password";

次に、ユーザー名とパスワードを次のように保存します。

getSharedPreferences(PREFS_NAME,MODE_PRIVATE)
.edit()
.putString(PREF_USERNAME, username)
.putString(PREF_PASSWORD, password)
.commit();

したがって、次のように取得します。

SharedPreferences pref = getSharedPreferences(PREFS_NAME,MODE_PRIVATE);   
String username = pref.getString(PREF_USERNAME, null);
String password = pref.getString(PREF_PASSWORD, null);

if (username == null || password == null) {

//Prompt for username and password
}

または、設定ファイルに名前を付けたくない場合は、デフォルトを使用できます。

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
于 2012-09-28T12:32:12.573 に答える
3

どちらの目的でも、SQLiteデータベースとSharedPreferencesが機能します。ただし、SharedPreferencesは非常に使いやすいので、お勧めします。一部のpplは、このような変数を保持するクラスを作成するのが好きですが、SQLiteおよびSharedPreferencesファイルの利点は、アプリがバックグラウンドで破棄された場合でも、ユーザーのログイン名とパスワード情報が一緒に表示されることです。そのため、ユーザーがアプリに戻ってきたときに、パスワードを要求せずに再度サインインできます。ユーザーが明示的にログアウトすることを決定した場合は、共有設定ファイルからログイン情報を削除するだけです。

于 2012-09-28T12:22:41.427 に答える
1

他のアクティビティからログイン情報を取得する最も簡単な方法は、「SharedPreferences」を使用することです。ユーザー名とパスワードの保存と取得には、この方法を強くお勧めします。これは、アプリケーションのどこからでも問題なくこの情報にアクセスできるためです。ログイン情報は、アプリケーションで繰り返し使用する必要がある場合があります。

于 2012-09-28T12:25:59.863 に答える
0

多くのアプリケーションは、特定のアプリケーションまたはアクティビティの設定に関するユーザー設定をキャプチャする方法を提供する場合があります。これをサポートするために、AndroidはAPIのシンプルなセットを提供します。

プリファレンスは通常、名前と値のペアです。これらは、アプリケーションのさまざまなアクティビティ間で「共有設定」として保存できます(現在、プロセス間で共有することはできません)。または、アクティビティに固有に保存する必要があるものにすることもできます。

共有設定:共有設定は、アプリケーションのすべてのコンポーネント(アクティビティ、サービスなど)で使用できます。

アクティビティで処理される設定:これらの設定は、アクティビティでのみ使用でき、アプリケーションの他のコンポーネントでは使用できません。

共有設定:

共有設定は、ContextクラスのgetSharedPreferencesメソッドを使用して管理されます。プリファレンスはデフォルトのファイル(1)に保存されます。または、プリファレンスを参照するために使用するファイル名(2)を指定することもできます。

(1)ファイル名を指定した場合のインスタンスの取得方法は次のとおりです。

  public static final String PREF_FILE_NAME = "PrefFile";
  SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);

MODE_PRIVATEは、プリファレンスの動作モードです。これはデフォルトのモードであり、作成されたファイルには呼び出し元のアプリケーションのみがアクセスすることを意味します。サポートされている他の2つのモードは、MODE_WORLD_READABLEとMODE_WORLD_WRITEABLEです。MODE_WORLD_READABLEでは、他のアプリケーションは作成されたファイルを読み取ることはできますが、変更することはできません。MODE_WORLD_WRITEABLEの場合、他のアプリケーションにも作成されたファイルの書き込み権限があります。

(2)推奨される方法は、ファイル名を指定せずにデフォルトモードで使用することです。

  SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);

最後に、プリファレンスインスタンスを取得したら、プリファレンスから保存された値を取得する方法を次に示します。

   int storedPreference = preferences.getInt("storedInt", 0);

設定ファイルに値を保存するには、SharedPreference.Editorオブジェクトを使用する必要があります。Editorは、SharedPreferenceクラスのネストされたインターフェイスです。

   SharedPreferences.Editor editor = preferences.edit();
   editor.putInt("storedInt", storedPreference); // value to store
   editor.commit();

エディタは、ファイルから設定値を削除するためのremove()やclear()などのメソッドもサポートしています。

アクティビティ設定:

共有設定は、他のアプリケーションコンポーネントで使用できます。ただし、プリファレンスを他のコンポーネントと共有する必要がなく、アクティビティをプライベートプリファレンスにしたい場合。アクティビティのgetPreferences()メソッドを使用してこれを行うことができます。getPreferenceメソッドは、設定ファイル名にアクティビティクラスの名前を指定したgetSharedPreferences()メソッドを使用します。

設定を取得するためのコードは次のとおりです。

   SharedPreferences preferences = getPreferences(MODE_PRIVATE);
   int storedPreference = preferences.getInt("storedInt", 0);

値を保存するコードも、共有設定の場合と同じです。

   SharedPreferences preferences = getPreference(MODE_PRIVATE);
   SharedPreferences.Editor editor = preferences.edit();
   editor.putInt("storedInt", storedPreference); // value to store
   editor.commit();

アクティビティ状態をデータベースに保存するなど、他の方法を使用することもできます。注Androidには、android.preferenceというパッケージも含まれています。このパッケージは、アプリケーション設定UIを実装するためのクラスを定義します。

その他の例を確認するには、開発者サイトにあるAndroidのデータストレージの投稿を確認してください。

詳細については、次のリンクを確認してください。

Androidでデータを永続化する

于 2012-09-28T12:27:47.450 に答える