Прежде всего, вы должны простить меня, потому что мой английский очень плохой.
Я попытаюсь объяснить проблему:
У меня есть ActionBarActivity
с двумя страницами (ViewPager
).
На каждой странице есть Fragment
.
Моя проблема: как использовать элементы каждого Fragment
из этого ActionBarActivity
? Мой код заключается в следующем:Как управлять некоторыми элементами фрагмента в другом классе из ActionBarActivity, Android
ActionBarActivity.java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.manage_devices);
mActionbar = getSupportActionBar();
mActionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
mPager = (ViewPager) findViewById(R.id.pager);
FragmentManager fm = getSupportFragmentManager();
MyFragmentPagerAdapter fragmentPagerAdapter = new MyFragmentPagerAdapter(fm);
mPager.setAdapter(fragmentPagerAdapter);
mActionbar.setDisplayShowTitleEnabled(true);
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
mPager.setCurrentItem(tab.getPosition());}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {}
};
mActionbar.addTab(mActionbar.newTab().setText("SENSORS").setTabListener(tabListener));
mActionbar.addTab(mActionbar.newTab().setText("SIGNALS").setTabListener(tabListener));
/** Defining a listener for pageChange */
ViewPager.SimpleOnPageChangeListener pageChangeListener = new ViewPager.SimpleOnPageChangeListener(){
**@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
if(position == 0 & !hecho){
currView = mPager.getChildAt(mPager.getCurrentItem());
DevicesListView = (ListView) currView.findViewById(R.id.DevicesListView);
DevicesListView.setAdapter(DevicesAdapter);
DevicesListView.setOnItemClickListener(DeviceOnItemClickListener);
hecho = true;}
else if(!hecho){
mGraph = (GraphView)findViewById(R.id.graph);
}
mActionbar.setSelectedNavigationItem(position);
}**
};
/** Setting the pageChange listener to the viewPager */
mPager.setOnPageChangeListener(pageChangeListener);
}
Чтобы получить Listview
, я к нему доступ в OnPageSelected
.
Но это плохо для меня, потому что мне нужно изменить страницу для получения Listview
и построить ее.
ManageFragment.java
public class ManageFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d("","Entra");
return inflater.inflate(R.layout.manage_fragment, null);
}
}
Мой Listview
находится в manage_fragment
макете.
Это может помочь: Illustration
спасибо!
Вы можете получить доступ к фрагментам с помощью 'mPager.getAdapter(). GetItem (position)' –
Спасибо, но мне нужно другое дело – user2600052