2016-06-12 2 views
0
package com.agri.kishan; 

import android.os.Bundle; 
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.support.v7.widget.Toolbar; 
import android.widget.TextView; 
import android.widget.Toast; 
import com.agri.kishan.OneFragment; 

import java.util.ArrayList; 
import java.util.List; 

import com.agri.kishan.OneFragment; 

public class ScrollableTabsActivity extends AppCompatActivity { 

    private Toolbar toolbar; 
    private TabLayout tabLayout; 
    private ViewPager viewPager; 
    public static int tabsele; 
    public static String realqus="this is a sample qus"; 


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

     // 
     toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

     viewPager = (ViewPager) findViewById(R.id.viewpager); 
     setupViewPager(viewPager); 

     tabLayout = (TabLayout) findViewById(R.id.tabs); 
     tabLayout.setupWithViewPager(viewPager); 
     tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
      @Override 
      public void onTabSelected(TabLayout.Tab tab) { 
       viewPager.setCurrentItem(tab.getPosition()); 
       Toast.makeText(getApplicationContext(),tab.getPosition()+"",Toast.LENGTH_SHORT).show(); 
       tabsele=tab.getPosition(); 
       ///////////////////////////////////////// 
       ///////////////////////////////// 
       /////////////////// 

Я хочу, чтобы установить текст в соответствии с положением, я позиция успешноВкладки получить динамически добавлять, как SetText ему

   if(tabsele==0) 
       { 
        OneFragment.tv.setText("hai"); 



       } else if(tabsele==1) 
       { 
        OneFragment.tv.setText("bye"); 
       } 
       ////////////////// 
       //////////////////////////////// 
       /////////////////////////////////////////// 



      } 

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

      } 

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

      } 
     }); 

    } 

    private void setupViewPager(ViewPager viewPager) { 
     ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
     for(int i=0;i<=Card_display.counttabs;i++) { 
      adapter.addFrag(new OneFragment(), "Qus:"+i); 
     } 

     viewPager.setAdapter(adapter); 
    } 

    class ViewPagerAdapter extends FragmentPagerAdapter { 
     private final List<Fragment> mFragmentList = new ArrayList<>(); 
     private final List<String> mFragmentTitleList = new ArrayList<>(); 


     public ViewPagerAdapter(FragmentManager manager) { 
      super(manager); 
     } 

     @Override 
     public Fragment getItem(int position) { 

      return mFragmentList.get(position); 
     } 


     @Override 
     public int getCount() { 
      return mFragmentList.size(); 
     } 

     public void addFrag(Fragment fragment, String title) { 
      mFragmentList.add(fragment); 
      mFragmentTitleList.add(title); 

     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      return mFragmentTitleList.get(position); 
     } 
    } 

} 

Фрагмент страницы страница фрагмент представляет собой простой фрагмент, который имеет текстовое представление в нем, Я получаю позицию вкладки из активности Я хочу изменить текст на текст в фрагменте в соответствии с положением из вида деятельности

Fragement страница упаковка com.agri.kishan;

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentActivity; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.RelativeLayout; 
import android.widget.TextView; 

import com.agri.kishan.ScrollableTabsActivity; 


public class OneFragment extends Fragment { 
    ///////////////////////// 
    //////////////////////////// 
    ////////////////// 
    public static TextView tv; 
    //////////////////////// 
    //////////////////////// 
    ///////////////////// 

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

    @Override 
    public void onCreate(Bundle savedInstanceState) { 


     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_one, 
       container, false); 


     tv=(TextView)view.findViewById(R.id.realqus); 



     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.fragment_one, container, false); 
    } 


} 
+0

формы деятельности, как получить вид fragement, так что я не могу установить текст в fragement плз помочь –

ответ

0

Попробуйте этот подход Внутри вашего onTabSelected

OneFragment page = (OneFragment)viewPager.getAdapter().getItem(tab.getPosition()); 
page.tv.setText("Hi"); 
+0

нет ее не работает и Viewpager.getCurrentItem() dint работать, поэтому я использовал tabs.getPosition, заменив его .... но также он работает dll workllllzzz help –

+0

Какая проблема вы получаете? – insomniac

+0

для OneFragment page = (OneFragment) getSupportFragmentManager(). FindFragmentByTag ("android: switcher:" + R.id.viewpager + ":" + viewPager.getCurrentItem()); page.tv.setText («Привет»); Я использовал OneFragment page = (OneFragment) getSupportFragmentManager(). findFragmentByTag ("android: switcher:" + R.id.viewpager + ":" + tab.getPosition()); page.tv.setText («Привет»); я не получаю какие-либо ошибки, но textciew Dows не меняет –

Смежные вопросы