2013-03-09 3 views
-2
SDK

Я просто не в состоянии выяснить проблему в моем коде
Я хочу, чтобы войти в систему с FaceBook для моего приложения
Я следовал учебник из видео YouTube.
в коде, я могу войти с помощью facebook, но я не могу реализовать функцию выхода из системы. Я пытался это сделать. (Код для выхода из также есть, но до сих пор ее не работает) код выглядит следующим образом:ошибка в использовании андроида-facebook-

После нажатия на кнопку входа:

public void onClick(View v) { 
    // TODO Auto-generated method stub 

    switch(v.getId()){ 
case R.id.fb_button: 

    try{ 

     //to check if already logged in. 
     //my code never enters the following block. 

    if(fb.isSessionValid()){ 
     Toast.makeText(getBaseContext(), "loging out",  Toast.LENGTH_LONG).show(); 

     try { 
      fb.logout(getBaseContext()); 
         // update_fb_buttonimage() is a function to change the image of button 
          //if logged in: it shows logout 
          // else it shows login. 

          //but somehow its not working 
      update_fb_buttonimage(); 
     } catch (MalformedURLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 

       //following is working fine. 
       // but every time i click n the button, it enters this bolok of code. 
       //which is not what i want. this is tobe executed only if user is not logged in 
       //even if user is logged in , program enters this code only. 
       // instead of this th above "if" block should be executed. 

    else{ 
     Toast.makeText(getBaseContext(), "logging in", Toast.LENGTH_LONG).show(); 


     fb.authorize(LoginPage.this,new DialogListener(){ 

      @Override 
      public void onComplete(Bundle values) { 
       // TODO Auto-generated method stub 
       update_fb_buttonimage(); 

      } 

      @Override 
      public void onFacebookError(FacebookError e) { 
       // TODO Auto-generated method stub 

       Toast.makeText(getBaseContext(), "You can't login to the facebook", Toast.LENGTH_LONG).show(); 
      } 

      @Override 
      public void onError(DialogError e) { 
       // TODO Auto-generated method stub 
       Toast.makeText(getBaseContext(), "unIdentified Error", Toast.LENGTH_LONG).show(); 
      } 

      @Override 
      public void onCancel() { 
       // TODO Auto-generated method stub 

       Toast.makeText(getBaseContext(), "onCancel", Toast.LENGTH_LONG).show(); 
      }}); 
    } }catch(Exception e){ 
     System.out.print(e.toString()); 
     Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_LONG).show(); 
    } 
     break; 
     } 

Где моя ошибка?

ответ

0

просто заменить MainActivity.this с вашими и updateButtonImage()

if(fb.isSessionValid()) 
    { 
     try { 
      fb.logout(getApplicationContext()); 
      updateButtonImage(); 
     } catch (MalformedURLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     //button close session 
    } 
    else 
    { 
     fb.authorize(MainActivity.this,new String[] {"publish_stream"}, new DialogListener(){ 

      @Override 
      public void onFacebookError(FacebookError e) 
      { 
       Toast.makeText(MainActivity.this, "on Facebook error", Toast.LENGTH_SHORT).show(); 
      } 
      @Override 
      public void onError(DialogError e) 
      { 
       Toast.makeText(MainActivity.this, "on error", Toast.LENGTH_SHORT).show(); 
      } 
      @Override 
      public void onComplete(Bundle values) 
      { 
       updateButtonImage(); 

      } 
      @Override 
      public void onCancel() 
      { 

      } 
     }); 
     //login in to facebook 
    } 
+0

я попытался сделать это также. но это не работает! – user2056245

+0

попытайтесь поставить свой перерыв за пределами последней скобки, возможно, он выполняет, но не перерыв, потому что он выходит из системы, а затем обратно в ????? – JRowan

+0

idk это выглядит хорошо для меня – JRowan

Смежные вопросы