如何在tabView中启动TextView?

时间:2016-12-11 13:08:52

标签: java android android-layout

编辑:我试图在不良视图下找到textView。

我有tabView的活动,其中包含两个标签。对于每个选项卡,我想要有不同的布局。如何从每个视图中启动元素?我试图从我的活动中做到这一点,但当我搜索我的元素时,它返回null。这是我的代码,只有一个标签。

我的活动。

public class MyTariffListActivity extends AppCompatActivity {
TextView tariffName;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tab_view_layout);

    tariffName = (TextView) findViewById(R.id.tariffName);


    TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
    tabLayout.addTab(tabLayout.newTab().setText("Basic Info"));        

    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);

    final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
    final PageAdapterTariff adapter = new PageAdapterTariff
            (getSupportFragmentManager(), tabLayout.getTabCount());

    viewPager.setAdapter(adapter);

    Tariff tariff = getIntent().getParcelableExtra(MyCommonListActivity.TARIFF);

    tariffName.setText(tariff.getName()); // HERE tariffName is null

    viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));

    tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @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) {

        }
    });
} 
}

我的pageAdapter

public class PageAdapterTariff extends FragmentStatePagerAdapter {
int mNumOfTabs;

public PageAdapterTariff(FragmentManager fm, int NumOfTabs) {
    super(fm);
    this.mNumOfTabs = NumOfTabs;
}

@Override
public Fragment getItem(int position) {

    switch (position) {
        case 0:
            TariffInfoTab tariffInfoTab = new TariffInfoTab();
            return tariffInfoTab;
        default:
            return null;
    }
}

@Override
public int getCount() {
    return mNumOfTabs;
   }
}

我的标签定义:

public class TariffInfoTab extends Fragment {



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

    return inflater.inflate(R.layout.activity_my_show_tariff, container, false);

   }
}  

我的activity_my_show_tariff布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<TextView
            android:id="@+id/tariffName"
            android:gravity="center"
            android:layout_span="3"
            android:padding="3dip" />

</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

参考这个。它会对你有所帮助。 android-material-design-working-with-tabs