2014-12-13 3 views
0
This is MyTabActivity.java class 

public class MyTabActivity extends FragmentActivity { 
    ViewPager Tab; 
    TabPagerAdapter TabAdapter; 
    ActionBar actionBar; 

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

     TabAdapter = new TabPagerAdapter(getSupportFragmentManager()); 
     Tab = (ViewPager)findViewById(R.id.pager); 
     Tab.setOnPageChangeListener(
       new ViewPager.SimpleOnPageChangeListener() { 
        @Override 
        public void onPageSelected(int position) { 
         actionBar = getActionBar(); 
         actionBar.setSelectedNavigationItem(position);     } 
       }); 
     Tab.setAdapter(TabAdapter); 
     actionBar = getActionBar(); 

     //Enable Tabs on Action Bar 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
     ActionBar.TabListener tabListener = new ActionBar.TabListener(){ 
      @Override 
      public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) { 
       Toast.makeText(getBaseContext(), "Tab ReSelected: " + tab.getPosition(), Toast.LENGTH_SHORT).show(); 
      } 
      @Override 
      public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { 
       Tab.setCurrentItem(tab.getPosition()); 
       Toast.makeText(getBaseContext(), "Tab Selected: " + tab.getPosition(), Toast.LENGTH_SHORT).show(); 
      } 
      @Override 
      public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) { 
       Toast.makeText(getBaseContext(), "Tab UnSelected: " + tab.getPosition(), Toast.LENGTH_SHORT).show(); 
      }}; 
      //Add New Tab 
      actionBar.addTab(actionBar.newTab().setText("Tab1").setTabListener(tabListener)); 
      actionBar.addTab(actionBar.newTab().setText("Tab2").setTabListener(tabListener)); 
} 
} 


This is TabPagerAdapter.java 

public class TabPagerAdapter extends FragmentStatePagerAdapter { 
    public TabPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 
    @Override 
    public Fragment getItem(int i) { 
     switch (i) { 
     case 0: 
      return new Tab1Activity(); 
     case 1: 
      return new Tab2Activity(); 

     } 
     return null; 
    } 
    @Override 
    public int getCount() { 
     //No of Tabs 
     return 2; 
    } 
} 


public class Tab1Activity extends Fragment { 

    @Override 
    public View onCreateView(final LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.activity_main, container, false); 
    /// code to display LIstView 
     . 
     . 
    //here i m trying to invoke other tab on click of list item...this where i stuck 
listView.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adptr, View view, int pos, 
        long id) { 
       /// this code here is not working for me 
           Tab2Activity myDetailFragment = new Tab2Activity(); 
           Bundle bundle = new Bundle(); 
           bundle.putString("KEY_DETAIL", "Hi"); 
           myDetailFragment.setArguments(bundle); 
           FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); 
           fragmentTransaction.attach(myDetailFragment); 
           fragmentTransaction.addToBackStack(null); 
           fragmentTransaction.commit(); 


      }}); 
     return monthlyView; 
    } 
} 

This is Tab2Activity.java 

public class Tab2Activity extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View dailyView = inflater.inflate(R.layout.activity_mian, container, false); 
//  displaying list item based on the input from tab1 
     return dailyView; 
    } 
} 



This is activity_main.xml 

<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:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <ListView 
     android:id="@+id/list_View1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 
    </ListView> 


</RelativeLayout> 

This is pager.xml 

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <!-- The main content view starts --> 

    <LinearLayout 
     android:id="@+id/content_frame" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <android.support.v4.view.ViewPager 
      android:id="@+id/pager" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 
    </LinearLayout> 
</android.support.v4.widget.DrawerLayout> 

Теперь мой вопрос, я отображение списка элемента с помощью ListView в tab1 и я хочу, чтобы вызвать TAB2, когда пользователь нажимает на элементе списка tab1 и отобразите некоторые данные на tab2, отправив некоторые данные с tab1 на tab2.Как вызвать вторую вкладку фрагмента из первой вкладки фрагмента в виде пейджере

I an mew to android, please guide me with proper solutions. Thanks :) 

ответ

0

Использование viewPager.setCurrentItem(position, true); для переключения между вкладками.

Затем используйте this, чтобы получить текущий фрагмент.

Затем вы вызываете общедоступный метод этого фрагмента, который вы создаете, чтобы делать все, что хотите.

+0

Это сработало. Спасибо за вашу помощь :) –

+0

У меня есть еще одна проблема с обновлением старых данных с новым, я отправлю свой вопрос, если вы также можете взглянуть на это, и это будет здорово. –

+0

здесь я разместил вопрос. ознакомьтесь с этим http://stackoverflow.com/questions/27529402/updating-listview-show-old-data-even-after-updatting-with-new-data-in-arrayadapt –

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