Android 앱에 기본 탭 + 스 와이프 템플릿을 사용 중이며 Facebook 통합을 포함하려고합니다. 내 응용 프로그램은 다음과 같습니다. MainActivity에는 두 개의 탭이 있습니다. 하나의 탭 내용에는 Facebook 로그인 버튼이 있습니다.Android에서 Fragments와 Facebook SDK 통합?
그러나 Facebook website (6 단계)의 자습서에는 활동에 사용할 코드 만 포함되어 있습니다. Fragment를 구현하는 데 문제가 있습니다. 첫 번째 탭에 해당하는 단편에서 로그인 버튼을 클릭 할 때 FB 사용자 데이터를 검색하여 FB에 로그인하려고합니다. 여기
/**
* A fragment representing a section of the app.
*/
public static class SectionFragment extends Fragment
{
/**
* The fragment argument representing the section number for this
* fragment.
*/
public static final String ARG_SECTION_NUMBER = "section_number";
public SectionFragment() {}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
if(getArguments().getInt(ARG_SECTION_NUMBER) == tabSection.FACEBOOK.ordinal())
{
View view = inflater.inflate(R.layout.fragment_facebook, container, false);
Button loginButton = (Button) view.findViewById(R.id.login_button);
loginButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
//login to Facebook on click
}
});
return view;
}
else if(getArguments().getInt(ARG_SECTION_NUMBER) == tabSection.CONTACTS.ordinal())
{
View view = inflater.inflate(R.layout.fragment_contacts, container, false);
return view;
}
return null;
}
}
을 페이스 북 튜토리얼 코드입니다 :
다음은 단편 코드의
package com.firstandroidapp;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.widget.TextView;
import com.facebook.*;
import com.facebook.model.*;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// start Facebook Login
Session.openActiveSession(this, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
// make request to the /me API
Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
// callback after Graph API response with user object
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
TextView welcome = (TextView) findViewById(R.id.welcome);
welcome.setText("Hello " + user.getName() + "!");
}
}
});
}
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
}
이 모든 콜백 메소드는, 활동에하지 조각을 해당합니다. 단편에 넣고 버튼 클릭만으로 도움을 청합니다.
확인. 하지만 여전히 주요 활동에서 savedInstanceState를 확인하고 조각을 표시해야합니다. 이것은 FragmentPagerAdapter에 관계없이 Facebook 프래그먼트를 보여줍니다. Facebook 탭으로 스 와이프 할 때마다 Facebook 활동이 시작되고있는 것처럼 행동해야합니다. – ask