Saya ingin tahu apakah ada cara untuk mendapatkan dan meneruskan FBUSER dan FBID ke setiap bilah tab saya, dan menggunakannya di setiap tampilan web dengan meneruskannya di url, karena saya perlu menggunakannya di tampilan web saya. Berikut kodenya:

public class SampleFragment extends Fragment {

    private static final String ARG_POSITION = "position";
    private WebView myWebView;
    private String LOG_TAG = "AndroidWebViewActivity";

    private int position;


    public static SampleFragment newInstance(int position) {
        SampleFragment f = new SampleFragment();
        Bundle b = new Bundle();
        b.putInt(ARG_POSITION, position);
        f.setArguments(b);
        return f;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {


        position = getArguments().getInt(ARG_POSITION);
        View rootView = inflater.inflate(page, container, false);
        FloatingActionButton fab = (FloatingActionButton) rootView.findViewById(R.id.fabButton);
        final ProgressBarCircular progressBarCircular = (ProgressBarCircular) rootView.findViewById(R.id.progress);

        Log.i("ADebugTag", "Value: ");


        final WebView webView = (WebView) rootView.findViewById(R.id.webView);



        webView.getSettings().setBuiltInZoomControls(false);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setAllowContentAccess(true);

        webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
        webView.getSettings().setAllowFileAccessFromFileURLs(true);
        webView.getSettings().setAllowContentAccess(true);
        webView.getSettings().setAppCacheEnabled(true);


        webView.getSettings().setSupportZoom(false);
        webView.setInitialScale(0);

        LoginButton loginButton = (LoginButton) rootView.findViewById(R.id.login_button);
        loginButton.setReadPermissions("user_friends");
        // If using in a fragment
        loginButton.setFragment(this);
        // Other app specific specialization

        CallbackManager callbackManager = CallbackManager.Factory.create();
        loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                GraphRequest request = GraphRequest.newMeRequest(
                        loginResult.getAccessToken(),
                        new GraphRequest.GraphJSONObjectCallback() {
                            @Override
                            public void onCompleted(
                                    JSONObject object,
                                    GraphResponse response) {

                                Profile profile = Profile.getCurrentProfile();
                                String firstName = profile.getFirstName();
                                String a = "a";

                                Log.i("ADebugTag", "Value: " + firstName);

                            }
                        });

                Bundle parameters = new Bundle();
                parameters.putString("fields", "id,name,email");
                request.setParameters(parameters);
                request.executeAsync();

            }

            @Override
            public void onCancel() {
                Log.i("ADebugTag", "BANANA ");
            }

            @Override
            public void onError(FacebookException exception) {
                Log.i("ADebugTag", "BOOH ");
            }
        });





        switch (position) {
            case 0:

                fab.setOnClickListener(new View.OnClickListener()
                {
                    @Override
                    public void onClick(View v)
                    {
                        webView.loadUrl("file:///android_asset/eventiresponsive.html");
                    }
                });

            webView.loadUrl("file:///android_asset/eventiresponsive.html");

                webView.setWebViewClient(new WebViewClient() {

                    public void onPageFinished(WebView view, String url) {
                        progressBarCircular.setVisibility(View.GONE);
                    }
                });
                loginButton.setVisibility(View.GONE);


                break;
            case 1:
                fab.setOnClickListener(new View.OnClickListener()
                {
                    @Override
                    public void onClick(View v)
                    {
                        webView.loadUrl("file:///android_asset/fotostream.html");
                    }
                });


                loginButton.setVisibility(View.GONE);
                webView.loadUrl("file:///android_asset/fotostream.html");

                webView.setWebViewClient(new WebViewClient() {

                    public void onPageFinished(WebView view, String url) {
                        progressBarCircular.setVisibility(View.GONE);
                    }
                });


                break;
            case 2:
                fab.setOnClickListener(new View.OnClickListener()
                {
                    @Override
                    public void onClick(View v)
                    {
                        webView.loadUrl("file:///android_asset/eventiresponsive.html");
                    }
                });


                webView.setWebViewClient(new WebViewClient() {

                    public void onPageFinished(WebView view, String url) {
                        progressBarCircular.setVisibility(View.GONE);
                    }
                });

                loginButton.setVisibility(View.GONE);
                webView.loadUrl("http://www.google.com");

                break;
            case 3:
                fab.setVisibility(View.GONE);
                loginButton.setVisibility(View.VISIBLE);
                break;
        }

        return rootView;
    }
    @Override

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        CallbackManager callbackManager = CallbackManager.Factory.create();
        callbackManager.onActivityResult(requestCode, resultCode, data);
    }
0
Jack_usti 16 Mei 2015, 15:27

1 menjawab

Jawaban Terbaik

Saya tahu bahwa mendapatkan variabel-variabel ini bisa sangat rumit karena mereka selalu bersarang dalam metode panggilan balik.

Apa yang saya lakukan adalah menyimpannya di SharedPreferences, dan kemudian saya mendapatkannya dengan mudah di bagian lain aplikasi.

Untuk menulis kode yang lebih elegan dan yang lebih penting aman/efisien, Anda dapat mencari bus acara (seperti Otto, EventBus) atau Observables (RxJava) yang dapat menangani pengiriman objek-objek ini secara asinkron dengan sangat mudah !

Semoga saya membantu Anda :).

0
Mehdi 16 Mei 2015, 16:21
Dapatkah Anda membuatkan saya contoh untuk kode di atas? tolong @mehdi
 – 
Jack_usti
16 Mei 2015, 16:26
Ini cukup mudah, Anda hanya perlu menyimpan string di SharedPrefs, dan kemudian membawanya ke tempat lain.
 – 
Mehdi
16 Mei 2015, 17:51
Ya, tapi saya baru dalam pemrograman Android dan saya tidak tahu bagaimana melakukannya. @mehdi
 – 
Jack_usti
16 Mei 2015, 18:25
Ok, sekarang ada masalah lagi, kenapa nama depan var saat saya jalankan tidak tertulis di log? @mehdi
 – 
Jack_usti
17 Mei 2015, 18:29
Itu aneh. API harus tidak bekerja dengan benar. Jika Anda menemukan jawaban saya membantu, dapatkah Anda mengaturnya? Terima kasih :)
 – 
Mehdi
17 Mei 2015, 22:17