Я новичок в android. У меня есть скользящая компоновка вкладок и viewpager с фрагментом. Я установил базовую связь между ними для переключения вкладок на счет 5 (т. Е. 5 вкладок). Проблема заключается в том, что в каждой из этих вкладок я хочу заполнить список с помощью simplecursoradapter, для чего мне нужна позиция каждого фрагмента так что я мог бы заполнить его соответствующим образом. У меня есть позиция в классе адаптера фрагментов, но я не могу передать его основной деятельности. Кроме того, как я могу получить доступ к DBadapter внутри моего класса фрагмента, чтобы заполнить список из базы данных? или есть ли другой способ сделать это? Ниже мой код. Любая помощь приветствуется. Заранее спасибо.Как получить позицию фрагмента в Activity?
public class myFragment extends Fragment{
private ListView mainList;
public static myFragment getInstance(int position){
myFragment MyFragment = new myFragment();
Bundle args = new Bundle();
args.putInt("position", position);
MyFragment.setArguments(args);
return MyFragment;
}
@Override
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.fragment_main_list,container, false);
mainList = (ListView)layout.findViewById(R.id.mainListView);
Bundle bundle = getArguments();
if(bundle!=null){
if(bundle.getInt("position")==0){
mainList.setBackgroundColor(getResources().getColor(R.color.primary500));
}
else if(bundle.getInt("position")==1){
mainList.setBackgroundColor(getResources().getColor(R.color.primary100));
}
else if(bundle.getInt("position")==2){
mainList.setBackgroundColor(getResources().getColor(R.color.primary700));
}
else if(bundle.getInt("position")==3){
mainList.setBackgroundColor(getResources().getColor(R.color.accent));
}
else if(bundle.getInt("position")==4){
mainList.setBackgroundColor(getResources().getColor(R.color.black));
}
}
return layout;
}
}
Основное направление деятельности выглядит следующим образом:
public class MainActivity extends ActionBarActivity {
private Toolbar toolbar;
private ViewPager mPage;
private SlidingTabLayout mTabs;
DBadapter myDb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
openDB();
toolbar = (Toolbar)findViewById(R.id.app_bar);
mPage = (ViewPager)findViewById(R.id.pager);
mTabs = (SlidingTabLayout)findViewById(R.id.tabs);
mFab = (FloatingActionButton)findViewById(R.id.fab);
setSupportActionBar(toolbar);
mPage.setAdapter(new myPagerAdapter(getSupportFragmentManager()));
mTabs.setViewPager(mPage);
}
public class myPagerAdapter extends FragmentPagerAdapter{
String[] tabs;
public myPagerAdapter(FragmentManager fm) {
super(fm);
tabs = getResources().getStringArray(R.array.tabs);
}
@Override
public Fragment getItem(int position) {
myFragment MyFragment = myFragment.getInstance(position);
return MyFragment;
}
@Override
public CharSequence getPageTitle(int position) {
return tabs[position];
}
@Override
public int getCount() {
return 5;
}
}
Я использовал его. Но я не могу переключаться между вкладками. Застрял на 1-й позиции. Я не использовал никаких условий для проверки позиции. Просто сообщение тоста, чтобы проверить позицию. Но застрял. Я не мог перемещаться между вкладками. Но положение меняется при прохождении. – gogs09
Что случилось, когда вы промахнулись влево или напишите? ничего изменить или изменить, но отобразить свой первый фрагмент? –
Позиция, которую я показываю через тост, меняется. Но он отображает только первый фрагмент. – gogs09