2016-12-05 1 views
0

페이스 북을 로그 아웃 할 때 내 userinfo textview를 지우고 싶습니다. 하지만 실제로 로그 아웃 할 부분을 알지 못합니다. 그리고 내가 정보를 정리 해야할지 모르겠다 (이름, 성). 어떤 생각? 미리 감사드립니다.정보 공개 페이 스북 로그 아웃

MainActivity.java

public class LoginActivity extends AppCompatActivity { 

private TextView userinfo; 
private CallbackManager callbackManager; 
private LoginButton loginButton; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    FacebookSdk.sdkInitialize(getApplicationContext()); 
    LoginManager.getInstance().logOut(); 
    setContentView(R.layout.activity_login); 
    callbackManager = CallbackManager.Factory.create(); 
    loginButton = (LoginButton)findViewById(R.id.login_button); 
    userinfo= (TextView) findViewById(R.id.textView); 
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) 
     { 

      Toast.makeText(LoginActivity.this,"Oturum başarı ile açıldı!",Toast.LENGTH_LONG).show(); 
      setFacebookData(loginResult); 


     } 

     @Override 
     public void onCancel() { 
      Toast.makeText(LoginActivity.this,"Giriş işlemi iptal edildi.",Toast.LENGTH_LONG).show(); 
     } 

     @Override 
     public void onError(FacebookException error) { 

      Toast.makeText(LoginActivity.this,"Giriş başarısız.",Toast.LENGTH_LONG).show(); 
     } 

    }); 






} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    callbackManager.onActivityResult(requestCode, resultCode, data); 
} 

private void setFacebookData(final LoginResult loginResult) 
{ 
    GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { 
     @Override 
     public void onCompleted(JSONObject object, GraphResponse response) 
     { 
      try { 


       String firstName = response.getJSONObject().getString("first_name"); 
       String lastName = response.getJSONObject().getString("last_name"); 
       Log.i("Login"+ "FirstName", firstName); 
       Log.i("Login" + "LastName", lastName); 
       userinfo.setText("Hoşgeldiniz, "+firstName + " " +lastName+"!"); 



      } 
      catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 
    Bundle parameters = new Bundle(); 
    parameters.putString("fields", "first_name,last_name"); 
    request.setParameters(parameters); 
    request.executeAsync(); 

} 

답변

0

경우 당신은 FB SDK 버튼을 사용하고, 그때 그것은 사용자가 클릭에 로그 것입니다. 다른 사람의 클릭 버튼을 그냥 기본적으로이 명령

AccessToken.setCurrentAccessToken(null); 
Profile.setCurrentProfile(null); 

&을 적용합니다

LoginManager.getInstance().logOut(); 

를 호출하면 ""(예를 들어 textview.setText을 (. "")로 설정하여 당신에게 textviews을 취소 할 수 있습니다;)

+0

registercallback 함수의 끝에서 settext를 사용할 수 있습니까? –

0

그냥 텍스트 뷰 설정 한 모든 데이터를 지울 필요가 없습니다 sharedPref 또는 데이터베이스에서 하나가 FIRSTNAME 또는 LASTNAME 저장되지 않습니다로서 :

userinfo.setText(""); 
+0

onCreate()에서해야할까요? –

+0

아니, 로그 아웃 버튼을 클릭 할 때! –

관련 문제