プロジェクト「x」のログインページが1つあります。最初に、プロジェクトのログインページに適切な値を入力してプロジェクトに参加した場合、プロジェクトは常にサインインする必要があります。プロジェクトを開いてみてください。このコンセプトを実現するにはどうすればよいですか?
貴重なお時間をいただきありがとうございます!..
多くのアプリケーションは、特定のアプリケーションまたはアクティビティの設定に関するユーザー設定をキャプチャする方法を提供する場合があります。これをサポートするために、AndroidはAPIのシンプルなセットを提供します。
プリファレンスは通常、名前と値のペアです。これらは、アプリケーションのさまざまなアクティビティ間で「共有設定」として保存できます(現在、プロセス間で共有することはできません)。または、アクティビティに固有に保存する必要があるものにすることもできます。
Shared Preferences: The shared preferences can be used by all the components (activities, services etc) off the applications.
Activity handled preferences: These preferences can only be used with in the activity and can not be used by other components of the application.
共有設定:
共有設定は、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のデータストレージの投稿を確認してください。
詳細については、次のリンクを確認してください。
ログインするたびに、設定ファイル内にユーザーを設定します。次に、メインアクティビティで、この設定に価値があるかどうかを確認します。存在する場合は、ランディングページに移動します。それ以外の場合は、ログインページを表示します。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
getLandingPage();
}
private void getLandingPage() {
if (isLoggedIn()) {
//goto login page
} else {
//goto landing page
}
}
/**
* Checks whether preference contains any value
*
* @return
*/
private boolean isLoggedIn() {
return ProjectPreferences.getUserName() == ProjectPreferences.NULL_STRING
? true
: false;
}
}
また、ログイン時にユーザー名を設定することを忘れないでください。