2016-07-24 1 views
1

MainActivity.java : 선 (ADD)에 (... 등, int)를 설정 조각은 시작

이 방법은 추가 확인할 수 없습니다

: 여기
public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     if (savedInstanceState == null) { 
      getFragmentManager().beginTransaction() 
        .add(R.id.container, new homePage()) 
        .commit(); 
     } 
    } 
} 

은 내가 가진 오류입니다 (R.id.container, new 홈 페이지())

그래서 기본적으로 세 조각과 하나의 활동을 만들었습니다. 내 활동에는 레이아웃이 없습니다 (분명히 레이아웃 페이지가 있지만 ID는 컨테이너 임). 액티비티가 시작될 때 컨테이너에 홈 페이지 레이아웃 파일을 추가하고 싶지만 작동하지 않는 것 같습니다. 지금까지 레이아웃 등을 작성한 적이 있지만 지금 Java 코드를 추가하려고 시도하고 있지만 이것이 작동하지 않는 이유는 확실하지 않습니다.

아직 조각 중 하나의 자바 코드를 편집하지 않았으므로 근본적으로 코드 인 android studio가 생성시 추가됩니다. 당신의 homeFragment가 지원 라이브러리 (android.support.v4.app.Fragment)에서 Fragment를 확장하고 따라서 귀하의 MainActivity 대신 android.app.Fragment의 일부입니다 getFragmentManager()getSupportFragmentManager()를 사용해야하기 때문에

public class homePage extends Fragment { 

    private OnFragmentInteractionListener mListener; 
    private View view; 

    public homePage() { 
     // Required empty public constructor 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     view = inflater.inflate(R.layout.fragment_home_page, container, false); 
     Button btnLogin = (Button) view.findViewById(R.id.login); 
     btnLogin.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       loginView(); 
      } 
     }); 
     return view; 
    } 

    public static homePage newInstance() { 
     homePage fragment = new homePage(); 
     Bundle args = new Bundle(); 
     return fragment; 
    } 

    public void loginView(){} 

    @Override 
    public void onAttach(Context context) { 
     super.onAttach(context); 
     if (context instanceof OnFragmentInteractionListener) { 
      mListener = (OnFragmentInteractionListener) context; 
     } else { 
      throw new RuntimeException(context.toString() 
        + " must implement OnFragmentInteractionListener"); 
     } 
    } 

    @Override 
    public void onDetach() { 
     super.onDetach(); 
     mListener = null; 
    } 

    /** 
    * This interface must be implemented by activities that contain this 
    * fragment to allow an interaction in this fragment to be communicated 
    * to the activity and potentially other fragments contained in that 
    * activity. 
    * <p/> 
    * See the Android Training lesson <a href= 
    * "http://developer.android.com/training/basics/fragments/communicating.html" 
    * >Communicating with Other Fragments</a> for more information. 
    */ 
    public interface OnFragmentInteractionListener { 
     // TODO: Update argument type and name 
     void onFragmentInteraction(Uri uri); 
    } 
} 
+0

는 onCreate''이 추가하려고 했나 .id.content, new MyFragment()). commit(); }' – Vucko

+0

확장 한 조각 유형에 문제가있을 수 있습니다. 지원 또는 비 지원? – Eenvincible

답변

1

이 될 수 있습니다. android.R`(getFragmentManager() findFragmentById (android.R.id.content) == null를 돌려줍니다.) { getFragmentManager() 들어 BeginTransaction() .add 경우 (:.