I am using the navigation-drawer
template in eclipse to do a simple Android application.
I have some trouble with fragment.
I declared a fragment called PresenceLog Fragment in manifest but when I called it in MainActivity
, the log still says that
03-23 13:54:50.817: E/AndroidRuntime(16750): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.singtel.ricecooker/com.singtel.ricecooker.PresenceLogFragment}; have you declared this activity in your AndroidManifest.xml?
Here is my manifest
Here is my fragment class
public class PresenceLogFragment extends Fragment{ private TextView myText = null; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.presence_log, null); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); ArrayList<String> userList = null; RiceServerRequest newRequest = new RiceServerRequest(); //newRequest.getRequestInfo(this); } public void updateUserList(ArrayList<String> userList){ LinearLayout lView = (LinearLayout) getView().findViewById (R.layout.presence_log); //LinearLayout ll = (LinearLayout)fragment.getView().findViewById(R.id.commentFragmentLayout); for (int i = 0; i < userList.size();i++){ myText = new TextView(getActivity()); myText.setText(userList.get(i)); lView.addView(myText); } //setContentView(lView); }
Here is my MainActivity
private void launchPresenceLog(){ Intent intent = new Intent(this,PresenceLogFragment.class); startActivity(intent); }
It would be great if you know what is wrong with my code. Also, since I am new to Android programming, I would appreciate it if you could suggest some online courses.
Advertisement
Answer
You have created a Fragment so you could not call it like a Activity. You need to replace a container view, properly an FrameLayout with your Fragment.
getSupportFragmentManager() .beginTransaction() .replace(R.id.content_frame, new PresenceLogFragment()) .commit();