0

開始するには、Facebook / Twitter/Googleからのサインインが必要なアプリケーションを作成しました。レイアウトでは、Facebook、Twitter、Google用にそれぞれ3つのスイッチを作成しました。これらのスイッチには、オンとオフのオプションがあります。ユーザーが対応するアカウントからログインしている場合、特定のアカウントの切り替えを「オン」にしたい。たとえば、ユーザーがFacebookからログインしている場合、Facebookの横にあるスイッチのみをオンにする必要があります。どうやってやるの?

任意の提案をいただければ幸いです。また、誰かが知っている場合は、これに関連するチュートリアルを参照してください。以下はログインページの私のコードです。Facebookの部分のログインを示しました:Thanx :)

private OnClickListener loginButtonListener = new OnClickListener() {
        @SuppressWarnings("deprecation")
        public void onClick( View v ) {
            String[] permissions = { "offline_access", "publish_stream", "user_photos", "publish_checkins","photo_upload" };


            if(v.getId() == R.id.button1 )
            {
                facebookSwitch = true;
                twitterSwitch = false;
                googleSwitch = false;
                if( !mFacebook.isSessionValid() ) {
                    Toast.makeText(Login.this, "Authorizing", Toast.LENGTH_SHORT).show();
                    mFacebook.authorize(Login.this, permissions, new LoginDialogListener());
                }
                else {
                    Toast.makeText( Login.this, "Has valid session", Toast.LENGTH_SHORT).show();
                    try {
                        JSONObject json = Util.parseJson(mFacebook.request("me"));
                        //Log.d("Login", "11111111111111111");
                        String facebookID = json.getString("id");
                        //Log.d("Login", "22222222222222"); 

                        String firstName = json.getString("first_name");
                        //Log.d("Login", "3333333333333333333");

                        String lastName = json.getString("last_name");
                        //Log.d("Login", "4444444444444444444444");

                        Toast.makeText(Login.this, "You already have a valid session, " + firstName + " " + lastName + ". No need to re-authorize.", Toast.LENGTH_LONG).show();
                        Intent intent = new Intent(Login.this,MainActivity.class);
                        startActivity(intent);
                    }
                    catch( Exception error ) {
                        Toast.makeText( Login.this, error.toString(), Toast.LENGTH_SHORT).show();
                    }
                    catch( FacebookError error ) {
                        Toast.makeText( Login.this, error.toString(), Toast.LENGTH_SHORT).show();
                    }
                }
            }
4

1 に答える 1

0

この方法で試してみてください....

-最初Singleton Classに 3 つの boolean variables for 3 logins info, and thereGetter-Setter` を作成します。アプリケーション全体でそのクラスがどこから呼び出されても、そのクラスの 1 つのオブジェクトのみが形成されるように、ここではシングルトンが必要です。これで、単一の情報ポイントが得られました。

-ユーザーが 1 つまたは 2 つまたはすべてのソーシャル ネットワーキング サイトにログインしているかどうかを知るためにSingleton、クラスの変数を別の開始時または必要なときに常にチェックします。Activity

///////////////////////////////編集部分//////////////// /////////////

シングルトンを作成する簡単な方法を以下に示しますが、他にもいくつかあります。

public class Test{

   public static Test uniqueInstance = new Test();

   private Test(){}

   public static Test getInstance(){

      return uniqueInstance;       

      // No matter what but always u will get the same instance.

   }

}

このオブジェクトを別のクラスで呼び出すには、次のようにします...

public class Main{

 Test t = Test.getInstance();    // Now use t to call the fields and methods of class T.


}
于 2012-10-26T05:38:45.157 に答える