title: Sliding Menu, Navigation Drawer with ListFragment
body: <p>I use a Sliding Menu and Navigation Drawer with Fragments but I need a ListFragment instead of Fragment. When the app starts and I click on the link to open the side with the ListFragment the programm stopped, but I don't know whats the problem.. :/</p>
  
  <p>This is my MainActivity with the Sliding Menu:</p>
  
  <pre><code>package at.example.sliding_menu;
  
  import at.example.sliding_menu.adapter.NavDrawerListAdapter;
  import at.example.sliding_menu.model.NavDrawerItem;
  
  import java.util.ArrayList;
  
  import android.app.Activity;
  import android.app.Fragment;
  import android.app.FragmentManager;
  import android.app.ListFragment;
  import android.content.res.Configuration;
  import android.content.res.TypedArray;
  import android.os.Bundle;
  import android.support.v4.app.ActionBarDrawerToggle;
  import android.support.v4.widget.DrawerLayout;
  import android.util.Log;
  import android.view.Menu;
  import android.view.MenuItem;
  import android.view.View;
  import android.widget.AdapterView;
  import android.widget.ListView;
  
  public class MainActivity extends Activity {
  private DrawerLayout mDrawerLayout;
  private ListView mDrawerList;
  private ActionBarDrawerToggle mDrawerToggle;
  
  // nav drawer title
  private CharSequence mDrawerTitle;
  
  // used to store app title
  private CharSequence mTitle;
  
  // slide menu items
  private String[] navMenuTitles;
  private TypedArray navMenuIcons;
  
  private ArrayList&lt;NavDrawerItem&gt; navDrawerItems;
  private NavDrawerListAdapter adapter;
  
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
  
      mTitle = mDrawerTitle = getTitle();
  
      // load slide menu items
      navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);
  
      // nav drawer icons from resources
      navMenuIcons = getResources()
              .obtainTypedArray(R.array.nav_drawer_icons);
  
      mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
      mDrawerList = (ListView) findViewById(R.id.list_slidermenu);
  
      navDrawerItems = new ArrayList&lt;NavDrawerItem&gt;();
  
      // Hinzufügen der Items in das Sliding Menu
      // Home
      navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
      // Glossar
      navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
      // Logout
      navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
      // 
  
  
      // Recycle the typed array
      navMenuIcons.recycle();
  
      mDrawerList.setOnItemClickListener(new SlideMenuClickListener());
  
      // setting the nav drawer list adapter
      adapter = new NavDrawerListAdapter(getApplicationContext(),
              navDrawerItems);
      mDrawerList.setAdapter(adapter);
  
      // enabling action bar app icon and behaving it as toggle button
      getActionBar().setDisplayHomeAsUpEnabled(true);
      getActionBar().setHomeButtonEnabled(true);
  
      mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
              R.drawable.ic_drawer, //nav menu toggle icon
              R.string.app_name, // nav drawer open - description for accessibility
              R.string.app_name // nav drawer close - description for accessibility
      ) {
          public void onDrawerClosed(View view) {
              getActionBar().setTitle(mTitle);
              // calling onPrepareOptionsMenu() to show action bar icons
              invalidateOptionsMenu();
          }
  
          public void onDrawerOpened(View drawerView) {
              getActionBar().setTitle(mDrawerTitle);
              // calling onPrepareOptionsMenu() to hide action bar icons
              invalidateOptionsMenu();
          }
      };
      mDrawerLayout.setDrawerListener(mDrawerToggle);
  
      if (savedInstanceState == null) {
          // on first time display view for first nav item
          displayView(0);
      }
  }
  
  /**
   * Slide menu item click listener
   * */
  private class SlideMenuClickListener implements
          ListView.OnItemClickListener {
      @Override
      public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position,
              long id) {
          // display view for selected nav drawer item
          displayView(position);
      }
  }
  
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
  }
  
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
      // toggle nav drawer on selecting action bar app icon/title
      if (mDrawerToggle.onOptionsItemSelected(item)) {
          return true;
      }
      // Handle action bar actions click
      switch (item.getItemId()) {
      case R.id.action_settings:
          return true;
      default:
          return super.onOptionsItemSelected(item);
      }
  }
  
  /***
   * Called when invalidateOptionsMenu() is triggered
   */
  @Override
  public boolean onPrepareOptionsMenu(Menu menu) {
      // if nav drawer is opened, hide the action items
      boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
      menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
      return super.onPrepareOptionsMenu(menu);
  }
  
  /**
   * Diplaying fragment view for selected nav drawer list item
   * */
  private void displayView(int position) {
      // update the main content by replacing fragments
      Fragment fragment = null;
      ListFragment listf = null;
      switch (position) {
      case 0:
          fragment = new HomeFragment();
          break;
      case 1:
          listf = new GlossarFragment();
          break;
      case 2:
          fragment = new LogoutFragment();
          break;
  
      default:
          break;
      }
  
      if (fragment != null) {
          FragmentManager fragmentManager = getFragmentManager();
          fragmentManager.beginTransaction()
                  .replace(R.id.frame_container, fragment).commit();
  
          // update selected item and title, then close the drawer
          mDrawerList.setItemChecked(position, true);
          mDrawerList.setSelection(position);
          setTitle(navMenuTitles[position]);
          mDrawerLayout.closeDrawer(mDrawerList);
  
      } else if (listf != null) {
          // do stuff if its a listfragment
          FragmentManager fragmentManager = getFragmentManager();
          fragmentManager.beginTransaction()
                  .replace(R.id.frame_container, listf).commit();
  
          mDrawerList.setItemChecked(position, true);
          mDrawerList.setSelection(position);
          setTitle(navMenuTitles[position]);
          mDrawerLayout.closeDrawer(mDrawerList);
      } else {
          // error in creating fragment
          Log.e("MainActivity", "Error in creating fragment");
      }
  }
  
  @Override
  public void setTitle(CharSequence title) {
      mTitle = title;
      getActionBar().setTitle(mTitle);
  }
  
  /**
   * When using the ActionBarDrawerToggle, you must call it during
   * onPostCreate() and onConfigurationChanged()...
   */
  
  @Override
  protected void onPostCreate(Bundle savedInstanceState) {
      super.onPostCreate(savedInstanceState);
      // Sync the toggle state after onRestoreInstanceState has occurred.
      mDrawerToggle.syncState();
  }
  
  @Override
  public void onConfigurationChanged(Configuration newConfig) {
      super.onConfigurationChanged(newConfig);
      // Pass any configuration change to the drawer toggls
      mDrawerToggle.onConfigurationChanged(newConfig);
  }
  
  }
  </code></pre>
  
  <p>And this is my GlossarFragment, which is the ListFragment I want to open, inside there should be a List with some data.</p>
  
  <pre><code>package at.example.sliding_menu;
  
  import java.util.ArrayList;
  import java.util.HashMap;
  import java.util.List;
  
  import android.app.ListFragment;
  import android.os.Bundle;
  import android.text.Editable;
  import android.text.TextWatcher;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.ViewGroup;
  import android.widget.ArrayAdapter;
  import android.widget.EditText;
  import android.widget.ListAdapter;
  import android.widget.ListView;
  
  public class GlossarFragment extends ListFragment {
  
   // List view
  private ListView lv;
  
  // Listview Adapter
  ArrayAdapter&lt;String&gt; adapter;
  
  // Search EditText
  EditText inputSearch;
  
  // ArrayList for Listview
  ArrayList&lt;HashMap&lt;String, String&gt;&gt; productList;
  
  //private ArrayList&lt;String&gt; product;
  //private ArrayAdapter&lt;String&gt; productAA;
  
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
          Bundle savedInstanceState) {
  
      View rootView = inflater.inflate(R.layout.fragment_glossar, container, false);
  
      return rootView;
      /**
      lv = (ListView) getView().findViewById(R.id.list_view);
      product = new ArrayList&lt;String&gt;();
      product.clear();
      product.add("test");
      adapter = new ArrayAdapter&lt;String&gt; (this, R.layout.list_item, product );
  
      lv.setAdapter(productAA);*/
  
       /**                
      //Listview Data
      String products[] = {"Text1", "Text2", "Text3"};
  
  
      //lv = (ListView) findViewById(R.id.list_view);
      //inputSearch = (EditText) findViewById(R.id.inputSearch);
      lv = (ListView) getView().findViewById(R.id.list_view);
      inputSearch = (EditText) getView().findViewById(R.id.inputSearch);
  
      // Adding items to listview
      ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;String&gt;(getActivity(), R.layout.list_item, R.id.product_name, products);
      setListAdapter(adapter);
  
      /**
       * Enabling Search Filter*/
     /**
      inputSearch.addTextChangedListener(new TextWatcher() {
  
          @Override
          public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
              // When user changed the Text
              GlossarFragment.this.adapter.getFilter().filter(cs); 
          }
  
          @Override
          public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                  int arg3) {
              // TODO Auto-generated method stub
  
          }
  
          @Override
          public void afterTextChanged(Editable arg0) {
              // TODO Auto-generated method stub                        
          }
      });*/
  }
  }
  </code></pre>