2014-01-19 20 views
0

這似乎沒有連接和更新Facebook API的文本字段,任何人都可以看到問題。我不得不將Request.executeMeRequestAsyc更改爲Request.newMeRequest,因爲它已被棄用。任何幫助,將不勝感激。onCompleted無法正常工作?

代碼片斷

公共類MainActivity擴展活動{

public void onActivityResult(int requestCode, int resultCode, Intent data){ 
    super.onActivityResult(requestCode, resultCode, data); 
    Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Session.openActiveSession(this, true, new Session.StatusCallback() { 

     @Override 
     public void call(Session session, SessionState state, Exception exception) { 
      // TODO Auto-generated method stub 
      if (session.isOpened()) { 
       //---make request to the /me api--- 
       Request.newMeRequest(session, new Request.GraphUserCallback() { 

        @Override 
        public void onCompleted(GraphUser user, Response response) { 
         // TODO Auto-generated method stub 
         if(user != null){ 
          TextView welcome = (TextView) findViewById(R.id.welcome); 
          welcome.setText("Hello " + user.getName() + "!"); 
         } 

        } 
       }); 
      } 
     } 
    }); 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

}

回答

0

你需要調用executeAsync上明確要求:

 if (session.isOpened()) { 
      //---make request to the /me api--- 
      Request.newMeRequest(session, new Request.GraphUserCallback() { 

       @Override 
       public void onCompleted(GraphUser user, Response response) { 
        // TODO Auto-generated method stub 
        if(user != null){ 
         TextView welcome = (TextView) findViewById(R.id.welcome); 
         welcome.setText("Hello " + user.getName() + "!"); 
        } 

       } 
      }).executeAsync(); // <----- ADD THIS 
     }