2017-02-07 3 views
1

私のAndroidアプリケーションには、2種類のログインがあります。ユーザーはFacebookやGoogle+でログインできます。ユーザーが正常にログインすると、その特定のソーシャルアカウントのデータが表示されます。たとえば、ユーザーがFacebookでログインすると、Facebookからのデータが表示されます。Androidでブール値をチェックする方法は?

demo.java 

boolean isFacebook; 

    if (!isFacebook) { 
     txtName.setText(PrefUtils.getCurrentUser(WelcomeScreenActivity.this).firstname); 
     txtEmail.setText(PrefUtils.getCurrentUser(WelcomeScreenActivity.this).email); 

     // fetching facebook's profile picture 
     new AsyncTask<Void, Void, Void>() { 
      @Override 
      protected Void doInBackground(Void... params) { 
       URL imageURL = null; 
       try { 
        imageURL = new URL("https://graph.facebook.com/" + user.facebookID + "/picture?type=small"); 
       } catch (MalformedURLException e) { 
        e.printStackTrace(); 
       } 
       try { 
        bitmap = BitmapFactory.decodeStream(imageURL.openConnection().getInputStream()); 

       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
       return null; 
      } 

      @Override 
      protected void onPostExecute(Void aVoid) { 
       super.onPostExecute(aVoid); 
       imgProfile.setImageBitmap(bitmap); 

      } 
     }.execute(); 

    } else { 
     isFacebook = false; 
     SharedPreferences pref = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE); 
     String username = pref.getString("PROFILE_USERNAME", ""); 
     String email = pref.getString("PROFILE_EMAIL_GOOGLE", ""); 
     pref.getString("PROFILE_IMAGE_USER", ""); 
     txtName.setText(username); 
     txtEmail.setText(email); 
    } 
} 

このコードでは、ユーザーがFacebookでログインすると、代わりにGoogle+の詳細が表示されます。どうすれば修正できますか?

+1

としてisFacebookをintialize場合、ボタン上の問題が

bt_fb.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { isFacebook= true;' } bt_twitter.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { isFacebook= false;' } 

も、より良いをクリックがあるかもしれません。..実際に何を求めているのですか? –

+0

可能な読書:http://codingbat.com/doc/java-if-boolean-logic.html –

+0

あなたは何がうまくいかないかを見るためにこれを小さなテストに分割することができます。 – David

答えて

3

文字通り、あなたが説明したことの反対をしています。 isFacebookfalseの場合、Facebookからデータを取得しています。つまり、Facebookではありません。

変更if (isFacebook)

+0

私はしようとしますが、それは動作していません@Mehmet Kologlu –

4

の文はあなたの条件は

間違っている場合、それはこの

if (!isFacebook) { 
    // do false logic here you need to check for GOOGLE 
} 

// do true logic here you need to check for FB 
+0

私はあなたのソリューションを試しますが、ユーザーがgoogle +のログインをクリックするとデータが表示されますが、ユーザーがFacebookでログインするとデータを取得できませんでした。 @Aditya Vyas-Lakhan –

+0

あなたの完全なコードを表示 –

+0

完全なソースコードを投稿する - Aditya Vyas-Lakhan –

1

よう

boolean isFacebook; 
     if (isFacebook) { 
      txtName.setText(PrefUtils.getCurrentUser(WelcomeScreenActivity.this).firstname); 
      txtEmail.setText(PrefUtils.getCurrentUser(WelcomeScreenActivity.this).email); 

      // fetching facebook's profile picture 
      new AsyncTask<Void, Void, Void>() { 
       @Override 
       protected Void doInBackground(Void... params) { 
        URL imageURL = null; 
        try { 
         imageURL = new URL("https://graph.facebook.com/" + user.facebookID + "/picture?type=small"); 
        } catch (MalformedURLException e) { 
         e.printStackTrace(); 
        } 
        try { 
         bitmap = BitmapFactory.decodeStream(imageURL.openConnection().getInputStream()); 

        } catch (IOException e) { 
         e.printStackTrace(); 
        } 
        return null; 
       } 

       @Override 
       protected void onPostExecute(Void aVoid) { 
        super.onPostExecute(aVoid); 
        imgProfile.setImageBitmap(bitmap); 

       } 
      }.execute(); 

     } else { 
      //get google + details here 
     } 
    } 
(ただ、マイナー間違いを得た)の代わりにこれを使用しなければならない最初の

あなたが提供したこのコードは、グーグル+は、最初の場所で

はまた、あなたが私はあなたのポストに質問が表示されていないboolean isFacebook= true;

関連する問題