2015-12-02 37 views
0

不幸的是,我不知道这种类型的设计正确的Android术语:如何用两个运行不同查询的按钮在Android ListView中创建一个头文件?

Android Header ListView

我根据我的Android应用程序一个ListView元素,并在其上(在上面图片(1)备注(2)LISTS(1))被选中,我想在ListView中显示不同的结果。

所以,我的问题如下:

我如何才能使这项工作延长我的ListView?我只需要放置在顶部的两个不同的按钮,还是有一个特定的视图使用?

+1

这些是标签;您可以根据用户选择哪个选项卡来加载适当的数据。 – Eenvincible

+0

谢谢!对,就是那样。 – user3475602

回答

0

尝试使用TabLayout,检查此link

也许是最好的解决办法是使用TabLayout与使用ViewPager两个片段(一个为每个标签)。检查提供的全面教程链接

1

我想你想创建一个选项卡式视图。要使用android材质设计创建选项卡式视图,您可以使用TabLayout和View Pager。

对于每个选项卡,您需要创建一个片段。这样

public class Tab1 extends Fragment { 

//Overriden method onCreateView 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    //Returning the layout file after inflating 
    //Change R.layout.tab1 in you classes 
    return inflater.inflate(R.layout.tab1, container, false); 
} 
} 

看到我们正在返回inflater.inflate(r.layout.tab1 .. 这是你想要显示的标签的XML资源文件。

您还需要一个适配器你的类可以使用FragmentStatePagerAdapter类实现。

public class Pager extends FragmentStatePagerAdapter { 

//integer to count number of tabs 
int tabCount; 

//Constructor to the class 
public Pager(FragmentManager fm, int tabCount) { 
    super(fm); 
    //Initializing tab count 
    this.tabCount= tabCount; 
} 

//Overriding method getItem 
@Override 
public Fragment getItem(int position) { 
    //Returning the current tabs 
    switch (position) { 
     case 0: 
      Tab1 tab1 = new Tab1(); 
      return tab1; 
     case 1: 
      Tab2 tab2 = new Tab2(); 
      return tab2; 
     case 2: 
      Tab3 tab3 = new Tab3(); 
      return tab3; 
     default: 
      return null; 
    } 
} 

//Overriden method getCount to get the number of tabs 
@Override 
public int getCount() { 
    return tabCount; 
} 
} 

,最后只实现标签在你的活动。

public class MainActivity extends AppCompatActivity implements TabLayout.OnTabSelectedListener{ 

//This is our tablayout 
private TabLayout tabLayout; 

//This is our viewPager 
private ViewPager viewPager; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    //Adding toolbar to the activity 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    //Initializing the tablayout 
    tabLayout = (TabLayout) findViewById(R.id.tabLayout); 

    //Adding the tabs using addTab() method 
    tabLayout.addTab(tabLayout.newTab().setText("Tab1")); 
    tabLayout.addTab(tabLayout.newTab().setText("Tab2")); 
    tabLayout.addTab(tabLayout.newTab().setText("Tab3")); 
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 

    //Initializing viewPager 
    viewPager = (ViewPager) findViewById(R.id.pager); 

    //Creating our pager adapter 
    Pager adapter = new Pager(getSupportFragmentManager(), tabLayout.getTabCount()); 

    //Adding adapter to pager 
    viewPager.setAdapter(adapter); 

    //Adding onTabSelectedListener to swipe views 
    tabLayout.setOnTabSelectedListener(this); 
} 

@Override 
public void onTabSelected(TabLayout.Tab tab) { 
    viewPager.setCurrentItem(tab.getPosition()); 
} 

@Override 
public void onTabUnselected(TabLayout.Tab tab) { 

} 

@Override 
public void onTabReselected(TabLayout.Tab tab) { 

} 
} 

欲了解更多详细信息结帐本教程这对我工作绝对好。 Android TabLayout Example using ViewPager and Fragments

相关问题