Skip to content
Advertisement

“Activity not found” in Android

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();
Advertisement