@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
・・・・・・・
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.addTab(tabLayout.newTab().setText("test1").setTag(1)); tabLayout.addTab(tabLayout.newTab().setText("test2").setTag(2)); tabLayout.addTab(tabLayout.newTab().setText("test3").setTag(3));
}
// Activityが起動する時
@Override
public void onStart() {
TabLayout.OnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override public void onTabSelected(TabLayout.Tab tag) { Integer fValue = Integer.valueOf(TabLayout.Tab.getTag()); switch (fValue) { case 1: test1画面起動 break; case 2: test2画面起動 break; case 3: test3画面起動 break; } } @Override public void onTabUnselected(TabLayout.Tab tag) { } @Override public void onTabReselected(TabLayout.Tab tag) { } });
}
タブにtest1,test2,test3と名前をつけ、それぞれにtagの数字を与えました。
その後 onStart()以降でタップしたタグを感知してtagの数字を取得してswitchするというふうに書きたいです。
上記まで仕上げましたが、 エラー: staticでないメソッド getTag()をstaticコンテキストから参照することはできません
となりました。調べたところgetTag()はインスタンスメソッドで非staticだと判明しました。 対処方法も調べたところgetTag()をstatic宣言すれば直ると突き止めました。しかしいろいろな場所でstatic宣言してみたのですが、うまくいきません。
呼び出し先メソッドを含むクラスをインスタンス化した上でメソッドを呼び出そうとも考えましたが、newしても特に意味がありませんでした。
解説よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/24 01:46