2013-07-19 25 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