title: Android how to put listview in view pager fragments
body: <p>I have implemented a swipey tabs app using viewpager by using this template in Eclipse
  <img src="https://i.stack.imgur.com/Asl1p.png" alt="enter image description here"></p>
  
  <p>Now i get an activity which extends FragmentActivity like this</p>
  
  <pre><code>        package com.example.abcd2;
  
      import java.util.Locale;
  
      import android.os.Bundle;
      import android.support.v4.app.Fragment;
      import android.support.v4.app.FragmentActivity;
      import android.support.v4.app.FragmentManager;
      import android.support.v4.app.FragmentPagerAdapter;
      import android.support.v4.app.NavUtils;
      import android.support.v4.view.ViewPager;
      import android.view.Gravity;
      import android.view.LayoutInflater;
      import android.view.Menu;
      import android.view.MenuItem;
      import android.view.View;
      import android.view.ViewGroup;
      import android.widget.TextView;
  
      public class MainActivity extends FragmentActivity {
  
          /**
           * The {@link android.support.v4.view.PagerAdapter} that will provide
           * fragments for each of the sections. We use a
           * {@link android.support.v4.app.FragmentPagerAdapter} derivative, which
           * will keep every loaded fragment in memory. If this becomes too memory
           * intensive, it may be best to switch to a
           * {@link android.support.v4.app.FragmentStatePagerAdapter}.
           */
          SectionsPagerAdapter mSectionsPagerAdapter;
  
          /**
           * The {@link ViewPager} that will host the section contents.
           */
          ViewPager mViewPager;
  
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
  
              // Create the adapter that will return a fragment for each of the three
              // primary sections of the app.
              mSectionsPagerAdapter = new SectionsPagerAdapter(
                      getSupportFragmentManager());
  
              // Set up the ViewPager with the sections adapter.
              mViewPager = (ViewPager) findViewById(R.id.pager);
              mViewPager.setAdapter(mSectionsPagerAdapter);
  
          }
  
          @Override
          public boolean onCreateOptionsMenu(Menu menu) {
              // Inflate the menu; this adds items to the action bar if it is present.
              getMenuInflater().inflate(R.menu.main, menu);
              return true;
          }
  
          /**
           * A {@link FragmentPagerAdapter} that returns a fragment corresponding to
           * one of the sections/tabs/pages.
           */
          public class SectionsPagerAdapter extends FragmentPagerAdapter {
  
              public SectionsPagerAdapter(FragmentManager fm) {
                  super(fm);
              }
  
              @Override
              public Fragment getItem(int position) {
                  // getItem is called to instantiate the fragment for the given page.
                  // Return a DummySectionFragment (defined as a static inner class
                  // below) with the page number as its lone argument.
                  if(position==0)
  {
  Fragment frag2=new ShowFrag2();
                  return frag2;}
  else
  {
  Fragment fragment = new DummySectionFragment();
                  Bundle args = new Bundle();
                  args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, position + 1);
                  fragment.setArguments(args);
                  return fragment;}
              }
  
              @Override
              public int getCount() {
                  // Show 3 total pages.
                  return 3;
              }
  
              @Override
              public CharSequence getPageTitle(int position) {
                  Locale l = Locale.getDefault();
                  switch (position) {
                  case 0:
                      return getString(R.string.title_section1).toUpperCase(l);
                  case 1:
                      return getString(R.string.title_section2).toUpperCase(l);
                  case 2:
                      return getString(R.string.title_section3).toUpperCase(l);
                  }
                  return null;
              }
          }
  
          /**
           * A dummy fragment representing a section of the app, but that simply
           * displays dummy text.
           */
          public static class DummySectionFragment extends Fragment {
              /**
               * The fragment argument representing the section number for this
               * fragment.
               */
              public static final String ARG_SECTION_NUMBER = "section_number";
  
              public DummySectionFragment() {
              }
  
              @Override
              public View onCreateView(LayoutInflater inflater, ViewGroup container,
                      Bundle savedInstanceState) {
                  View rootView = inflater.inflate(R.layout.fragment_main_dummy,
                          container, false);
                  TextView dummyTextView = (TextView) rootView
                          .findViewById(R.id.section_label);
                  dummyTextView.setText(Integer.toString(getArguments().getInt(
                          ARG_SECTION_NUMBER)));
                  return rootView;
              }
          }
  
      }
  </code></pre>
  
  <p>In this, to create a new fragment in one of the tabs, i use if-else based on position in the getItem() method as shown. 
  The fragment showfrag2 is  this</p>
  
  <pre><code>import android.os.Bundle;
  import android.support.v4.app.Fragment;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.ViewGroup;
  
  public class ShowFrag2 extends Fragment {
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) {
          // Inflate the layout for this fragment
          return inflater.inflate(R.layout.frag2, container, false);
      }
  }
  </code></pre>
  
  <p>My question is, how do i create a listview in one of this fragments . I would like to use a simple listview only in this manner </p>
  
  <pre><code>LevelAdapter adapter = new LevelAdapter(this,
              R.layout.list_item, weather_data);
  
  
      listView1 = (ListView)findViewById(R.id.listView1);
  
  
  
      listView1.setAdapter(adapter);
  </code></pre>
  
  <p>But this has been done in an activity. How can i use something like this in the fragment above. Also, i cannot use ListFragment as the getView() method is returning a fragment. 
  Please help regarding how to implement this. 
  Thanks 
  EDIT:
  Here is my adapter code :</p>
  
  <pre><code>    package com.example.abcd3;
  
  import android.app.Activity;
  import android.content.Context;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.ViewGroup;
  import android.widget.ArrayAdapter;
  import android.widget.ImageView;
  import android.widget.TextView;
  
  public class LevelAdapter extends ArrayAdapter&lt;Level&gt; {
  
       static Context context;
          static int layoutResourceId;   
          static Level data[] = null;
  
      /*    public LevelAdapter(Context context, int layoutResourceId, Level[] data) {
              super(context, layoutResourceId, data);
              this.layoutResourceId = layoutResourceId;
              this.context = context;
              this.data = data;
          }*/
  
          public LevelAdapter(ShowFrag1 showFrag1, int listItem,
                  Level[] weather_data) {
              super(context, layoutResourceId, data);
              this.layoutResourceId = layoutResourceId;
              this.context = context;
              this.data = data;
  
              // TODO Auto-generated constructor stub
          }
  
          public long getItemId(int position) {
              return position;
          }
  
          @Override
          public View getView(int position, View convertView, ViewGroup parent) {
              View row = convertView;
              WeatherHolder holder = null;
  
              if(row == null)
              {
                  LayoutInflater inflater = ((Activity)context).getLayoutInflater();
                  row = inflater.inflate(layoutResourceId, parent, false);
  
                  holder = new WeatherHolder();
                  holder.imgIcon = (ImageView)row.findViewById(R.id.imgIcon);
                  holder.txtTitle = (TextView)row.findViewById(R.id.txtTitle);
                 // holder.imgIcon2=(ImageView)row.findViewById(R.id.imgIcon2);
  
  
                  row.setTag(holder);
              }
              else
              {
                  holder = (WeatherHolder)row.getTag();
              }
  
              Level weather = data[position];
              holder.txtTitle.setText(weather.title);
              holder.imgIcon.setImageResource(weather.icon);
  
              return row;
          }
  
          static class WeatherHolder
          {
              ImageView imgIcon;
              TextView txtTitle;
          //    ImageView imgIcon2;
          }
  
  }
  </code></pre>