0

Я использую ViewPager в моей MainActivity с тремя различными представлениями, я хочу показать ExpandableListView внутри одного из них, но я не могу его получить. Может ли кто-нибудь сказать мне, как это исправить? Я буду благодарен.Как использовать фрагменты внутри ViewPager

Это мой FragmentPagerAdapter:

public class PagerAdapterJulio extends FragmentPagerAdapter { 

    public PagerAdapterJulio(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int i) { 
     switch (i) { 
      case 0: 
       return new HomeActivity.DummySectionFragment(); 
      case 1: 
       return new HomeActivity.DummySectionFragment(); 
      case 2: 
       return new HomeActivity.DummySectionFragment(); 
      default: 
       return null; 
     } 
    } 

    public int getCount() { 
     return 3; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return "Section " + (position + 1); 
    } 
} 

Вот мой BaseExpandableListAdapter:

public class MyExpandableAdapter extends BaseExpandableListAdapter { 

    private Activity activity; 
    private ArrayList<Object> childtems; 
    private LayoutInflater inflater; 
    private ArrayList<String> parentItems, child; 
    private Context ctx; 

    public MyExpandableAdapter(ArrayList<String> parents, ArrayList<Object> childern) { 
     this.parentItems = parents; 
     this.childtems = childern; 
    } 

    public void setInflater(LayoutInflater inflater, Activity activity) { 
     this.inflater = inflater; 
     this.activity = activity; 
    } 

    @Override 
    public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { 

     child = (ArrayList<String>) childtems.get(groupPosition); 

     TextView textView = null; 

     if (convertView == null) { 
      convertView = inflater.inflate(R.layout.group, null); 
     } 

     textView = (TextView) convertView.findViewById(R.id.textView1); 
     textView.setText(child.get(childPosition)); 

     convertView.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View view) { 
       Toast.makeText(activity, child.get(childPosition)+" holaaa", 
         Toast.LENGTH_SHORT).show(); 
      } 
     }); 

     return convertView; 
    } 

    @Override 
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { 

     if (convertView == null) { 
      convertView = inflater.inflate(R.layout.row, null); 
     } 

     ((CheckedTextView) convertView).setText(parentItems.get(groupPosition)); 
     ((CheckedTextView) convertView).setChecked(isExpanded); 


     return convertView; 
    } 

    @Override 
    public Object getChild(int groupPosition, int childPosition) { 
     return null; 
    } 

    @Override 
    public long getChildId(int groupPosition, int childPosition) { 
     return 0; 
    } 

    @Override 
    public int getChildrenCount(int groupPosition) { 
     return ((ArrayList<String>) childtems.get(groupPosition)).size(); 
    } 

    @Override 
    public Object getGroup(int groupPosition) { 
     return null; 
    } 

    @Override 
    public int getGroupCount() { 
     return parentItems.size(); 
    } 

    @Override 
    public void onGroupCollapsed(int groupPosition) { 
     super.onGroupCollapsed(groupPosition); 
    } 

    @Override 
    public void onGroupExpanded(int groupPosition) { 
     super.onGroupExpanded(groupPosition); 
    } 

    @Override 
    public long getGroupId(int groupPosition) { 
     return 0; 
    } 

    @Override 
    public boolean hasStableIds() { 
     return false; 
    } 

    @Override 
    public boolean isChildSelectable(int groupPosition, int childPosition) { 
     return false; 
    } 


} 

и Вот часть кода OnCreate метода в MainActivty:

 final ActionBar actionBar = getActionBar(); 
     actionBar.setHomeButtonEnabled(false); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
     mViewPager = (ViewPager) findViewById(R.id.pager); 
     mAdap = new PagerAdapterJulio(getSupportFragmentManager()); 
     mViewPager.setAdapter(mAdap); 
//  mViewPager.setAdapter(mAppSectionsPagerAdapter); 
     mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { 
      @Override 
      public void onPageSelected(int position) { 
       actionBar.setSelectedNavigationItem(position); 
      } 
     }); 

     for (int i = 0; i < mAdap.getCount(); i++) { 
      actionBar.addTab(
        actionBar.newTab() 
          .setText(mAdap.getPageTitle(i)) 
          .setTabListener(this)); 
     } 

ответ

0

Создайте новый подкласс Fragment со списком и верните экземпляр этого фрагмента в FragmentPag erAdapter.

Смежные вопросы