это вспомогательный класс Sqlite для извлечения данных из базы данных
public class Simple1 extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "yogalite.db";
private static final int DATABASE_VERSION = 1;
private static final String ID="id";
private static final String NAME="name";
private static final String DESCRIPTION="description";
private static final String POSES_TABLE="poses";
public Simple1(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public ArrayList<Poses> getPoses(){
SQLiteDatabase db=getWritableDatabase();
String[] columns={Simple1.ID,Simple1.NAME,Simple1.DESCRIPTION};
Cursor cursor=db.query(Simple1.POSES_TABLE, columns, null, null, null, null, null);
return questionsArrayList;
}
это моя активность для просмотра вкладок и вьюпейдера, вкладки должны добавляться динамически с использованием количества записей в базе данных
public class Learner_2 extends AppCompatActivity {
Context context;
private ViewPager mViewPager;
Simple1 myDatabase;
ArrayList<Poses> posesArrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_learner_2);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
final TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs_2);
for(int i = 1 ; i< 5 ; ++i) {
for (int j = 1; j <5; j++ ){
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.ic_learn));
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.ic_write));
}
}
tabLayout.setTabGravity(TabLayout.GRAVITY_CENTER);
final ViewPager viewPager = (ViewPager) findViewById(R.id.container);
final PagerAdapter2 adapter = new PagerAdapter2
(getSupportFragmentManager(),tabLayout.getTabCount(),getApplicationContext());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_learner_2, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}}
это мой фрагмент
public class Learn2 extends android.support.v4.app.Fragment {
TextView Answer;
TextView Question;
String Ques, Ans;
Simple1 myDatabase;
private ArrayList<Poses> posesArrayList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_learner_2, container, false);
Answer = v.findViewById(R.id.explain);
Answer.setMovementMethod(new ScrollingMovementMethod());
Question = v.findViewById(R.id.text_title);
Bundle args = getArguments();
if (args != null && args.containsKey("categoryName") && args.containsKey("categoryId")) {
Ques = args.getString("categoryName");
Ans = args.getString("categoryId");
}
Question.setText("" + Ques);
Answer.setText("" + Ans);
return v;
}
}
это мой PagerAdapter
public class PagerAdapter2 extends FragmentStatePagerAdapter {
private int mNumOfTabs;
Simple1 myDatabase;
Context context;
ArrayList<Poses> posesArrayList;
public PagerAdapter2(FragmentManager fm, int NumOfTabs ,Context mcontext) {
super(fm);
this.mNumOfTabs = NumOfTabs;
this.context= mcontext;
}
@Override
public Fragment getItem(int position) {
myDatabase = new Simple1(context);
posesArrayList = myDatabase.getPoses();
String Question= posesArrayList.get(position).name;
String Answer= posesArrayList.get(position).description;
Learn2 fsp = new Learn2();
Bundle args = new Bundle();
args.putString("categoryName", Question);
args.putString("categoryId", Answer);
fsp.setArguments(args);
return fsp;
}
@Override
public int getCount() {
return mNumOfTabs;
}
}
Я хочу обновить фрагменты в пейджере представления в tablayout с базой данных, используя только один фрагмент, и количество созданных вкладок должно быть динамическим в зависимости от записей базы данных.