1

TopFreeFragment.javaの中でTabのテキスト/タイトルを取得するにはどうすればよいですか?AndroidのフラグメントJava内のタブのテキスト/タイトルを取得

どのタブが選択されているか知りたいので、ウェブビューを読み込みたいと思います。どうやってやるの?

sharedPreferencesを使用しようとしましたが、これは正しい方法ではなく、正しく動作しません。

ここで私は私がnewInstance()方法と、あなたのフラグメントでgetTitle()方法を記述して、名前を渡すTopFreeFragment.java

public class YouTube_Toolbar extends AppCompatActivity { 

Toolbar toolbar; 
TabLayout tabLayout; 
ViewPager viewPager; 
ViewPagerAdapter viewPagerAdapter; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.you_tube__toolbar); 

    toolbar = (Toolbar) findViewById(R.id.toolBar); 
    setSupportActionBar(toolbar); 

    tabLayout = (TabLayout) findViewById(R.id.tabLayout); 
    viewPager = (ViewPager) findViewById(R.id.viewPager); 

    viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager()); 
    viewPagerAdapter.addFragments(new TopFreeFragment(), "TUESDAY"); 
    viewPagerAdapter.addFragments(new TopFreeFragment(), "WEDNESDAY"); 
    viewPagerAdapter.addFragments(new TopFreeFragment(), "THURSDAY"); 
    viewPagerAdapter.addFragments(new TopFreeFragment(), "FRIDAY"); 
    viewPager.setAdapter(viewPagerAdapter); 
    tabLayout.setupWithViewPager(viewPager); 
    tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 
     } 

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

     } 

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

     } 
    }); 
} 

public class TopFreeFragment extends Fragment { 

WebView webView; 
Button download; 

public TopFreeFragment() { 
    // Required empty public constructor 
} 


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

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

答えて

0

内のタブのタイトルのトーストを表示したいですBundleを介して。

このような何か:

TopFreeFragment.java

public class TopFreeFragment extends Fragment { 
    WebView webView; 
    Button download; 

    public TopFreeFragment() { 
     // Required empty public constructor 
    } 

    public static TopFreeFragment newInstance(String title) { 
     TopFreeFragment fragment = new TopFreeFragment(); 

     Bundle args = new Bundle(); 
     args.putCharSequence("title", title); 
     fragment.setArguments(args); 

     return fragment; 
    } 

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

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

    public String getTitle() { 
     Bundle args = getArguments(); 
     return args.getCharSequence("title", "NO TITLE FOUND"); 
    } 
} 

次に、このようなあなたのviewPagerAdapterにフラグメントを追加します。

YouTube_Toolbar.java

public class YouTube_Toolbar extends AppCompatActivity { 

    Toolbar toolbar; 
    TabLayout tabLayout; 
    ViewPager viewPager; 
    ViewPagerAdapter viewPagerAdapter; 

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

     toolbar = (Toolbar) findViewById(R.id.toolBar); 
     setSupportActionBar(toolbar); 

     tabLayout = (TabLayout) findViewById(R.id.tabLayout); 
     viewPager = (ViewPager) findViewById(R.id.viewPager); 

     viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager()); 
     viewPagerAdapter.addFragments(TopFreeFragment.newInstance("TUESDAY"), "TUESDAY"); 
     viewPagerAdapter.addFragments(TopFreeFragment.newInstance("WEDNESDAY"), "WEDNESDAY"); 
     viewPagerAdapter.addFragments(TopFreeFragment.newInstance("THURSDAY"), "THURSDAY"); 
     viewPagerAdapter.addFragments(TopFreeFragment.newInstance("FRIDAY"), "FRIDAY"); 
     viewPager.setAdapter(viewPagerAdapter); 

     tabLayout.setupWithViewPager(viewPager); 
     tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
      @Override 
      public void onTabSelected(TabLayout.Tab tab) { 
      } 

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

      } 

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

      } 
     }); 
} 

フラグメント内のフラグメントのタイトルを取得するには、単にgetTitle()を呼び出します。タイトルは、メソッドの引数として渡すことができます。

+0

それは部分的に 'onActivityCreated公共ボイド(@NullableバンドルsavedInstanceState){ super.onActivityCreated(savedInstanceState)を動作します。 String title = getTitle(); Toast.makeText(getActivity()、 "" +タイトル、Toast.LENGTH_SHORT).show(); } ここでは、タブが選択されたときにトーストが出力されます(「TUESDAY」と「WEDNESDAY」のように) – akkk

+0

どの部分が機能しませんか?そのコードを 'onActivityCreated()'の代わりに 'onCreateView()'メソッドに追加してみてください。 – omkarmoghe

+0

onCreateView()の場合と同じです – akkk

関連する問題