gpt4 book ai didi

java - 如何在 Android ListView 中使用两个运行不同查询的按钮创建标题?

转载 作者:行者123 更新时间:2023-12-01 10:48:21 25 4
gpt4 key购买 nike

不幸的是,我不知道此类设计的正确 Android 术语:

Android Header ListView

我的 Android 应用程序中有一个 ListView 元素,具体取决于哪个类别(在上图中注释 (2)>LISTS (1)) 被选中,我想在 ListView 中显示不同的结果。

所以,我的问题如下:

如何扩展 ListView 才能实现此功能?我是否只需要在顶部放置两个不同的按钮,或者是否需要使用特定的 View ?

最佳答案

我猜您想创建一个选项卡式 View 。要使用 Android Material Design 创建选项卡式 View ,您可以使用 TabLayout 和 View Pager。

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

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

最后只需在您的 Activity 中实现选项卡即可。

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

关于java - 如何在 Android ListView 中使用两个运行不同查询的按钮创建标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34053027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com