Android 如何使用视图寻呼机实现列表视图和其他片段?

Android 如何使用视图寻呼机实现列表视图和其他片段?,android,listview,android-fragments,android-viewpager,Android,Listview,Android Fragments,Android Viewpager,我正在尝试将视图寻呼机与ListView和其他片段一起使用。列表视图将用作菜单,而其他片段只显示文本 我已经设法用TextView制作了ViewPager,但我就是不知道如何实现列表视图片段。我试图在网上找到一些例子,但我找不到我需要的 这就是我现在所拥有的 这是正课 public class MainActivity extends FragmentActivity { MyPageAdapter pageAdapter; List<Fragment>fragments;

我正在尝试将视图寻呼机与ListView和其他片段一起使用。列表视图将用作菜单,而其他片段只显示文本

我已经设法用TextView制作了ViewPager,但我就是不知道如何实现列表视图片段。我试图在网上找到一些例子,但我找不到我需要的

这就是我现在所拥有的

这是正课

  public class MainActivity extends FragmentActivity {

MyPageAdapter pageAdapter;
List<Fragment>fragments;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
    fragments = new Vector<Fragment>();
    fragments.add(Fragment.instantiate(this, MyFragment.class.getName()));
    fragments.add(Fragment.instantiate(this, FragmentB.class.getName()));

    pageAdapter = new MyPageAdapter(getSupportFragmentManager(), fragments);

    ViewPager pager = (ViewPager) findViewById(R.id.viewpager);
    pager.setAdapter(pageAdapter);
}

@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;
}



 private class MyPageAdapter extends FragmentPagerAdapter {

     private List<Fragment> fragments;

     public MyPageAdapter(FragmentManager fm, List<Fragment> fragments) {
         super(fm);
         this.fragments = fragments;

     }
     @Override
     public Fragment getItem(int position) {

         return this.fragments.get(position);
     }

     @Override
     public int getCount() {
         return this.fragments.size();
     }
 }
public类MainActivity扩展了FragmentActivity{
MyPageAdapter-pageAdapter;
列表片段;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
片段=新向量();
add(Fragment.instantiate(this,MyFragment.class.getName());
add(Fragment.instantiate(这是FragmentB.class.getName());
pageAdapter=新的MyPageAdapter(getSupportFragmentManager(),片段);
ViewPager pager=(ViewPager)findViewById(R.id.ViewPager);
寻呼机设置适配器(pageAdapter);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
私有类MyPageAdapter扩展了FragmentPagerAdapter{
私有列表片段;
公共MyPageAdapter(FragmentManager fm,列出片段){
超级(fm);
this.fragments=片段;
}
@凌驾
公共片段getItem(int位置){
返回此.fragments.get(位置);
}
@凌驾
public int getCount(){
返回此.fragments.size();
}
}

}

创建一个新的
片段,如下所示:

public class SuperAwesomeCardFragment extends Fragment {
    CustomAdapter customAdapter;
    ArrayList<String> values;
    public static SuperAwesomeCardFragment superAwesomeFragment;
    /**
     * Creating new instance of the fragment
     * 
     * @param position
     * @return fragment
     */
    public static SuperAwesomeCardFragment newInstance(int position) {
        superAwesomeFragment = new SuperAwesomeCardFragment();

        Bundle b = new Bundle();
        b.putInt(ARG_POSITION, position);
        superAwesomeFragment.setArguments(b);
        return superAwesomeFragment;
    }



@Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            position = getArguments().getInt(ARG_POSITION);
                values.add("First");
               values.add("second");        
        }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        mContainer = container;
        LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                LayoutParams.MATCH_PARENT);
        FrameLayout fl = new FrameLayout(getActivity());
        fl.setLayoutParams(params);

        final int margin = (int) TypedValue.applyDimension(
                TypedValue.COMPLEX_UNIT_DIP, 8, getResources()
                        .getDisplayMetrics());
        ListView mListView = null;
        mList = commomList(mListView, params, margin);
        fl.addView(mList);
        return fl;
    }
/**
     * Common list for all views *
     * 
     * @param mList
     * @param params
     * @param margin
     * @return
     */   
    private ListView commomList(ListView mList, LayoutParams params, int margin) {
        mList = new ListView(getActivity());
        params.setMargins(margin, margin, margin, margin);
        mList.setLayoutParams(params);
        mList.setLayoutParams(params);
        customAdapter = new CustomAdapter(getActivity(), values);
        mList.setAdapter(customAdapter);
        return mList;
    }
}
MyPageAdapter
类中,使用

@Override
        public Fragment getItem(int position) {

            return SuperAwesomeCardFragment.newInstance(position);
        }

您必须使用
ListFragment
。创建一个
ListFragment
,并将其显示在
ViewPager
中。下面给出了一个简单的
ListFragment
代码

SimpleListFragment.java

public class SimpleListFragment extends ListFragment  {  

String[] numbers_text = new String[] { "one", "two", "three", "four",  
     "five", "six", "seven", "eight", "nine", "ten", "eleven",  
     "twelve", "thirteen", "fourteen", "fifteen" };  

 String[] numbers_digits = new String[] { "1", "2", "3", "4", "5", "6", "7",  
        "8", "9", "10", "11", "12", "13", "14", "15" };  

  @Override  
  public void onListItemClick(ListView l, View v, int position, long id) {  
  new CustomToast(getActivity(), numbers_digits[(int) id]);     
  }  

  @Override  
  public View onCreateView(LayoutInflater inflater, ViewGroup container,  
    Bundle savedInstanceState) {  
   ArrayAdapter<String> adapter = new ArrayAdapter<String>(  
     inflater.getContext(), android.R.layout.simple_list_item_1,  
     numbers_text);  
   setListAdapter(adapter);  
   return super.onCreateView(inflater, container, savedInstanceState);  
  }  
 } 

有关详细信息,请在展开并填充listview的布局中使用带有listview的片段。或者可以在每个项目上使用导航抽屉,单击在容器中添加新片段
public class SimpleListFragment extends ListFragment  {  

String[] numbers_text = new String[] { "one", "two", "three", "four",  
     "five", "six", "seven", "eight", "nine", "ten", "eleven",  
     "twelve", "thirteen", "fourteen", "fifteen" };  

 String[] numbers_digits = new String[] { "1", "2", "3", "4", "5", "6", "7",  
        "8", "9", "10", "11", "12", "13", "14", "15" };  

  @Override  
  public void onListItemClick(ListView l, View v, int position, long id) {  
  new CustomToast(getActivity(), numbers_digits[(int) id]);     
  }  

  @Override  
  public View onCreateView(LayoutInflater inflater, ViewGroup container,  
    Bundle savedInstanceState) {  
   ArrayAdapter<String> adapter = new ArrayAdapter<String>(  
     inflater.getContext(), android.R.layout.simple_list_item_1,  
     numbers_text);  
   setListAdapter(adapter);  
   return super.onCreateView(inflater, container, savedInstanceState);  
  }  
 } 
if (index == 0) {
            SimpleListFragment list = new SimpleListFragment ();
            return list;
        }