如何将 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 源文件中的主要内容,如果未能解决你的问题,请参考以下文章
如何使用nodejs和request将不同请求的响应放在同一个文档中?