2014-11-28 3 views
1

Android 앱에 버튼과 같은 facebook을 추가하려고했습니다. facebook-sdk 설치부터 코드 준수까지 페이스 북 개발자 사이트에서부터 모든 것을 따라했습니다. 모든 작업을 수행 할 때 현재 앱에서 오류가 발생하여이를 해결할 수 없습니다. 솔루션에 대한 다양한 리소스를 검색했지만 작동하지는 못합니다.콜백을 변수로 해결할 수 없습니다.

이렇게 구현했습니다. 코드는 아래

import com.facebook.UiLifecycleHelper; 
import com.facebook.widget.LikeView; 

public class MainActivity extends Activity { 
    private UiLifecycleHelper uiHelper; 

    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    uiHelper = new UiLifecycleHelper(this, callback); 

    LikeView likeView = (LikeView) findViewById(R.id.like_view); 
    likeView.setObjectId("https://www.facebook.com/NewsNrnDotCom"); 
    . 
    . 
    . 

    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    uiHelper.onActivityResult(requestCode, resultCode, data, null); 
} 
} 

그리고 파일 activity_main.xml의 코드는

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:ads="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <LikeView 
     android:id="@+id/like_view" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="100dp" 
     android:contentDescription="@string/logo" 
     android:padding="10dp" 
     android:src="@drawable/nrnlogo" /> 
</LinearLayout> 
</LinearLayout> 

모든 것이 괜찮 내 MainActivity.java를 대표하지만, 코드

uiHelper = new UiLifecycleHelper(this, callback); 

와 함께있다 말하는 오류 메시지 :

"callback cannot be resolved to a variable" 

어디서 오류가 있는지 찾을 수 없습니다. 나는 부피가 커지지 않도록 관련 코드를 몇 개 추가했습니다. 필요한 경우 더 많은 코드를 추가 할 수 있습니다.

+4

어디에서 콜백이 선언 되었습니까? – Blackbelt

답변

0

나는 당신이 당신의 활동에 Session.StatusCallback를 선언 할 수없는 생각 :

private Session.StatusCallback callback = new Session.StatusCallback() { 
    @Override 
    public void call(Session session, SessionState state, Exception exception) { 
     onSessionStateChange(session, state, exception); 
    } 
}; 
+1

8 초 늦었습니다. 공통점, 가난한 사람에게 줘. – Machado

+0

자, 제공 한 코드를 추가했습니다. 그러나 지금 나는 어떤 수입품을 만들어야하는지 혼란 스럽다. 나는 여러 가지 옵션을 제공 받는다. 특별히 말해 줄 수 있어요 ?? –

+0

다음을 시도해보십시오 : import com.facebook.Session.StatusCallback –

2

당신은 무엇을 콜백 수단 선언해야합니다.

private Session.StatusCallback callback = new Session.StatusCallback() { 
    @Override 
    public void call(Session session, SessionState state, 
      Exception exception) { 
     onSessionStateChange(session, state, exception); 
    } 
}; 

그러나 코드가 유사 해지면 다른 오류가 발생할 수 있습니다. 더 많은 문제를 피하려면 this question을 확인하십시오.

+1

순수한 도움이 당신에게서 왔습니다. – Elltz

관련 문제