如何将 google+ 登录代码放在不同的 java 源文件中

Posted

技术标签:

【中文标题】如何将 google+ 登录代码放在不同的 java 源文件中【英文标题】:how to put google+ sign-in code inside a different java source file 【发布时间】:2013-07-19 02:40:48 【问题描述】:

我有一个课程MainActivity,我正在其中实现标签+滑动导航。 我正在为不同的碎片创建不同的 java 文件。但问题是我无法访问MainActivity 类中的变量值。 现在我已经将片段类放在MainActivity 类中,并且应用程序运行良好。如果要为单独的片段创建单独的 java 文件,如何实现相同的结果。这是我现在的fagment类:

public static class fragmentLeft extends Fragment
    public fragmentLeft() 

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) 
        View rootView = inflater.inflate(R.layout.fragment_left,
                container, false);
        View.OnClickListener mStartListener = new OnClickListener() 
            public void onClick(View v) 
                //mChronometer.start();

                if (v.getId() == R.id.sign_in_button && !mPlusClient.isConnected()) 
                    Toast.makeText(getActivity(), "sadf", Toast.LENGTH_LONG).show();
                    if (mConnectionResult == null) 
                        mConnectionProgressDialog.show();
                     else 
                        try 
                            mConnectionResult.startResolutionForResult(getActivity(), REQUEST_CODE_RESOLVE_ERR);
                         catch (SendIntentException e) 
                            // Try connecting again.
                            Toast.makeText(getActivity(),(CharSequence) e, Toast.LENGTH_LONG).show();
                            mConnectionResult = null;
                            mPlusClient.connect();
                        
                    
                

            
        ;
        rootView.findViewById(R.id.sign_in_button).setOnClickListener(mStartListener);

        return rootView;
    

这些是我想从片段类访问的MainActivity 类中存在的变量:

private static ProgressDialog mConnectionProgressDialog;
private static PlusClient mPlusClient;
private static ConnectionResult mConnectionResult;

【问题讨论】:

【参考方案1】:

您的问题非常广泛,我不清楚您在寻找什么。但是,您要做的事情相对简单。看一下这个例子(它与 Google Play 游戏服务有关,比您想要实现的要复杂得多):

Google Play Game Services Multi-Player Device Orietation change kicks user out of room

访问不同片段中的变量有多种方式,“推荐”的方式可能是实现一个监听器接口。我经常使用一种更简单的方法,基于从这样的活动中调用片段中的方法:

    myFrag fragment = (myFrag) getSupportFragmentManager().findFragmentByTag("myFrag");
    fragment.someMethod();

另一种简单的方法是使用共享首选项直接访问变量。

【讨论】:

我编辑了这个问题。我想从我的片段类中访问这些东西。

以上是关于如何将 google+ 登录代码放在不同的 java 源文件中的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Google 登录从不同的活动中退出用户?

如何使用nodejs和request将不同请求的响应放在同一个文档中?

登录时弹出不同的页面

如何将Google Analytics会话与应用会话统一?

如何在不登录的情况下使用 google api 获取分析数据?

启用 Google Play 应用签名后 Gmail 登录不起作用