1
MainActivity.java:集片段作爲活動佈局開始
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();
}
}
}
這是我得到的錯誤:
無法解析方法添加(INT等)上添加一行(R.id.container,new homePage())
所以基本上我創建了三個片段和一個活動。我的活動沒有佈局(儘管它顯然有一個佈局頁面,它的ID是容器)。我想在活動啓動時將homePage佈局文件添加到容器,但這似乎不起作用。到目前爲止,我只創建了佈局等,現在我試圖添加java代碼,但我不確定爲什麼這不起作用。
我還沒有編輯任何片段的java代碼,所以它基本上是android studio在創建時添加的代碼。
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);
}
}
你嘗試在'onCreate'添加這樣的:'如果(getFragmentManager()findFragmentById(android.R.id.content)== NULL){ getFragmentManager()調用BeginTransaction() 。新增(android.R .id.content, new MyFragment())。commit(); }' – Vucko
可能是您擴展的片段類型的問題;支持還是非支持? – Eenvincible