2015-02-10 19 views
6

Tôi đang cố gắng phát triển một ứng dụng android trong studio android và tôi tiếp tục viết nhiều hơn và nhiều mảnh hơn trong lớp mainActivity. Câu hỏi của tôi là làm cách nào để tách những tệp này thành một tệp khác? Có lẽ tôi đang làm nó một cách sai lầm và nếu như vậy ai đó có thể chỉ cho tôi làm thế nào tôi nên làm điều đó?Làm thế nào để tách các mảnh vỡ thành các tệp khác nhau trong studio android?

Mã của tôi:

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 {...} 
} 

Trả lời

18

Vì chúng là các lớp bên trong tĩnh, AndroidStudio có thể dễ dàng tái cấu trúc các lớp này cho bạn. Chọn PlaceholderFragment1 (chỉ cần đặt con trỏ văn bản lên đó) và nhấn F6 (hoặc nhấp chuột phải vào tên phân đoạn-> refactor-> move) và chọn `Move inner class [fragment name] to upper level ', thay đổi tên và gói nếu bạn muốn và nhấn refactor.

Có một lớp bên trong tĩnh cho một phân đoạn là tốt (sẽ hoạt động về mặt kỹ thuật), nhưng nếu bạn muốn sử dụng lại đoạn trong hoạt động khác, tốt nhất là tái cấu trúc nó ra. Ngoài ra, hầu hết mọi người đều muốn giữ lớp học càng nhỏ càng tốt, và nếu chức năng của đoạn phân tách một cách hợp lý khỏi hoạt động thì có rất ít lý do để giữ nó như một lớp bên trong.

+0

Cảm ơn bạn rất nhiều. Về cơ bản câu trả lời trước là như nhau nhưng với điều này tôi có thể giải quyết nó theo nghĩa đen trong 3 lần nhấp chuột. Người đàn ông tuyệt vời. Cảm ơn bạn một lần nữa – DalekSupreme

+0

Điều này thưa ông, là một điều đẹp :) – joshpierro

0

Bạn có thể không vấn đề viết chúng như các lớp riêng biệt trong cùng một gói và sau đó chỉ cần sử dụng chúng. Nếu không, hãy viết chúng trong một gói riêng và nhập chúng như bất kỳ lớp nào khác.

0

Trước tiên, bạn sẽ cần phải tạo ra một lớp mới (tập tin lớp mới)

Chú ý: Bạn sẽ ned để tạo ra một lớp như thế này cho mỗi đoạn bạn phải xác định logic mảnh.

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 
} 

Sau đó, bạn có thể sử dụng nó trong MainActivity của bạn kéo dài FragmentActivity như:

MyFragment fragment= new MyFragment(); 

hoặc nếu tồn tại

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

Bạn có thể đặt mảnh vỡ của bạn để xem với:

FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
      ft.replace(R.id.frameLayout, fragment, FRAGMENT_TAG); 
      ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
      ft.addToBackStack(null); 
      ft.commit(); 
Các vấn đề liên quan