2015-02-10 30 views
6

我想在android studio中開發一個android應用程序,並且不斷在mainActivity類中寫入越來越多的片段。我的問題是如何將這些文件分開到另一個文件?或許我是以一種錯誤的方式去做,如果有的話,有人會告訴我該怎麼做?如何將碎片分離到android studio中的不同文件?

我的代碼:

public class MainActivity extends ActionBarActivity 
    implements NavigationDrawerFragment.NavigationDrawerCallbacks { 
. 
. 
. 
public static class PlaceholderFragment1 extends Fragment {...} 
public static class PlaceholderFragment2 extends Fragment {...} 
public static class PlaceholderFragment3 extends Fragment {...} 
} 

回答

18

由於它們是靜態的內部類,因此AndroidStudio可以輕鬆地爲您重構這些內部類。選擇PlaceholderFragment1(只需將文本光標放在上面),然後按F6(或右鍵單擊片段名稱 - >重構 - >移動)並選擇「將內部類[片段名稱]移動到上一級」,如果您更改了名稱和包想要和重構。

有一個片段的靜態內部類是罰款(技術上會工作),但如果你想在其他活動中重用該片段,最好重構它。此外,大多數人喜歡儘可能小的類,如果片段的功能在邏輯上與活動分開,沒有理由將其保留爲內部類。

+0

非常感謝。基本上以前的答案是一樣的,但是這個我可以通過3次點擊來解決。令人驚歎的人。再次感謝您 – DalekSupreme 2015-02-10 11:16:43

+0

這位先生,是一件美麗的事情:) – joshpierro 2015-06-07 06:07:31

0

你可以毫無問題地把它們寫在同一個包單獨的類,然後只用它們。否則,將它們寫入單獨的包中,並將它們導入爲其他任何類。

0

首先,你需要創建一個新的類(新的類文件)

注意:您定義創建這樣的一個類,你必須定義片段邏輯在每個片段。

public class MyFragment extends Fragment { 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    return inflater.inflate(R.layout.article_view, container, false); 
} 
//logic here 
} 

然後你就可以在你的MainActivity延伸FragmentActivity喜歡使用它:

MyFragment fragment= new MyFragment(); 

,或者如果存在

fragment= (MyFragment)getSupportFragmentManager().findFragmentByTag(FRAGMENT_TAG); 

您可以設置片段來查看與:

FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
      ft.replace(R.id.frameLayout, fragment, FRAGMENT_TAG); 
      ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
      ft.addToBackStack(null); 
      ft.commit();