0

アプリに基本的なログインを実装しようとしています。私がやりたいのは、ユーザーがログインしている場合、「グローバル」変数をtrue/falseに設定することです。

私はこのチュートリアルに従いました。これが私のコードです:

import android.app.Application;

public class GlobalParameters extends Application{
    private boolean loggedIn;

    public boolean isLoggedIn() {
    return loggedIn;
    }

    public void setLoggedIn(boolean loggedIn) {
    this.loggedIn = loggedIn;
    }
}

そしてこれは私の上にありますonCreate

GlobalParameters gp = ((GlobalParameters)getApplicationContext());
gp.setLoggedIn(false);

しかしGlobalParameters gp = ...、この例外をスローします:

ClassCastException

これもマニフェストに追加しました:

<application android:name=".GlobalParameters" 
   android:icon="@drawable/ic_launcher" 
   android:label="@string/app_name">
</application>

何か案が?

ありがとう。

4

2 に答える 2

1

に関連付けられてthis.getApplication()いるを取得するために使用します。しかし、あなたの場合、に行くのは少しやり過ぎだと思います。クラスで静的フィールドを使用することもできます。ApplicationActivityApplication

Activityただし、破棄されたときに状態を保持したい場合は、を使用できますSharedPreferences。これらを開始するための優れたガイドは、https://developer.android.com/guide/topics/data/data-storage.htmlにあります。 #pref

于 2013-03-25T22:26:43.997 に答える
0

変数がログインとログアウトだけの場合は、静的変数を使用して、ログイン時にtrueに設定し、ログアウト時にfalseに設定することをお勧めします。

public static boolean loggedIn;

以下のように使用します。

myApplication.loggedIn = true;

myApplication.loggedIn = false;
于 2013-03-25T22:58:48.567 に答える