2013-07-19 24 views
0

我有一个类MainActivity,其中我正在实现标签+滑动导航。 我正在为不同的片段创建不同的java文件。但问题是我将无法访问MainActivity类中的变量值。 现在我已经把MainActivity类中的片段类放在里面了,应用程序工作正常。如果想要为单独的片段创建单独的java文件,如何完成相同的结果。这是我fagment类现在:如何将谷歌+登录代码放入不同的java源文件中

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

你提的问题非常广泛,它我不清楚你到底在找什么。但是,你所要做的是相对简单的。看看这个例子(这涉及到谷歌Play游戏服务,是不是你正在寻找什么,以实现更复杂的):

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

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

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

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

+0

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