Java 简单if语句配置帮助/SectionPageAdapter显示信息
好的,在我正在构建的程序中,有一个活动在ListView中接收和显示ListFragments。此活动还有一个ViewPager(允许滑动),它覆盖SectionPageAdapter的getItem方法,以返回最终构成活动中5个不同可滑动部分的不同片段 一般来说,我对编程还比较陌生,我正在尝试考虑一种只包含1个活动和2个片段(可能是3个)的设计 getItem覆盖返回一个片段,该片段显示在5个选项卡中的每个选项卡上。两个片段将利用这个活动的布局,我希望能够以某种方式做出一个条件语句,来解释哪一个在哪种情况下是合适的 这是我的密码:Java 简单if语句配置帮助/SectionPageAdapter显示信息,java,android,loops,object,if-statement,Java,Android,Loops,Object,If Statement,好的,在我正在构建的程序中,有一个活动在ListView中接收和显示ListFragments。此活动还有一个ViewPager(允许滑动),它覆盖SectionPageAdapter的getItem方法,以返回最终构成活动中5个不同可滑动部分的不同片段 一般来说,我对编程还比较陌生,我正在尝试考虑一种只包含1个活动和2个片段(可能是3个)的设计 getItem覆盖返回一个片段,该片段显示在5个选项卡中的每个选项卡上。两个片段将利用这个活动的布局,我希望能够以某种方式做出一个条件语句,来解释哪一
import android.graphics.Color;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
public class SchResRanActivity extends AppCompatActivity {
public boolean isRanking;
public int daysPassed;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sch_res_ran);
//Toolbar schResRanBar = findViewById(R.id.theTopBar);
//setSupportActionBar(schResRanBar);
SectionPagerAdapter sectionPagerAdapter =
new SectionPagerAdapter(getSupportFragmentManager());
ViewPager pager = findViewById(R.id.pager);
pager.setAdapter(sectionPagerAdapter);
TabLayout tabLayout = findViewById(R.id.tabs);
tabLayout.setupWithViewPager(pager);
//tabLayout.setSelectedTabIndicatorColor(Color.WHITE);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_schresran_bar, menu);
return super.onCreateOptionsMenu(menu);
}
void setPageTitle(){}
private class SectionPagerAdapter extends FragmentPagerAdapter {
private SectionPagerAdapter(FragmentManager fm) { super(fm); }
@Override
public int getCount() { return 6; }
@Override
public CharSequence getPageTitle(int position) {
switch(position){
case 0:
return getResources().getString(R.string.day1);
case 1:
return getResources().getString(R.string.day2);
case 2:
return getResources().getString(R.string.day3);
case 3:
return getResources().getString(R.string.day4);
case 4:
return getResources().getString(R.string.day5);
case 5:
return getResources().getString(R.string.dayPlayoffs);
}
return null;
}
//this code depicts what I am trying to do but is way to clunky!
@Override
public Fragment getItem(int position) {
if (isRanking) {
switch (position){
case 0:
if (daysPassed >= 1) {
return new RankingsFragment();
} else {
return new NAFragment();
case 1:
if (daysPassed >= 2) {
return new RankingsFragment();
} else {
return new NAFragment();
case 2:
if (daysPassed >= 3) {
return new RankingsFragment();
} else {
return new NAFragment(); case 3:
case 4:
if (daysPassed >= 4) {
return new RankingsFragment();
} else {
return new NAFragment();
case 5:
if (daysPassed >= 5) {
return new RankingsFragment();
} else {
return new NAFragment();
}
return null;
if (isRanking == false) {
case 0:
if (daysPassed >= 1) {
return new ScheduleFragment();
} else {
return new NAFragment();
case 1:
if (daysPassed >= 2) {
return new ScheduleFragment();
} else {
return new NAFragment();
case 2:
if (daysPassed >= 3) {
return new ScheduleFragment();
} else {
return new NAFragment(); case 3:
case 4:
if (daysPassed >= 4) {
return new ScheduleFragment();
} else {
return new NAFragment();
case 5:
if (daysPassed >= 5) {
return new ScheduleFragment();
} else {
return new NAFragment();
}
return null;
}
}
}
这段代码描述了我试图做的事情,但这是一种笨拙的方式!有人能提出一个更有效的方法来写这篇文章吗
假设有一个叫做排名的按钮和一个叫做时间表的按钮。
单击这两个按钮都可以进入SchResRan活动,但如果按下schedule按钮,变量isRanking==false,每天显示的信息都不同。因此,如果通过天数==0,则任何页面上都不会显示任何信息(所有页面都将是NA片段),但如果通过天数==1,则第1天页面将显示第1天的信息;如果通过天数==2,则第1天和第2天页面将显示排名页面的相应信息,依此类推。您可以为此创建方法
public Fragment getItem(int position) {
tempPosition=position+1;
if (dayspassed>= tempPosition)
{
if (isRanking)
{
return new RankingsFragment();
}else
{
return new ScheduleFragment();
}
} else
{
return new NAFragment();
}
}
}
我是说…是的,我想你是对的…我不知道为什么我在想一些不必要的更复杂的事情。。。谢谢你hey@dubDeuce我更改了我的回复…检查它我删除了整个switchcase它在我的新方法片段中不可用直接返回..并在方法中添加位置+1…你只需要直接使用getItem(位置)…检查它并告诉它有用??意味着你不需要使用switchcase和getFragment你看到了吗?