Получить данные курсора в viewpager - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь получить данные курсора базы данных в viewpager, но с базовыми знаниями c Я не знаю, как установить курсор в viewpager.

Вот что я сделал до сих пор

Activity. java

private List<String> testContactName = new ArrayList<String>();
private List<String> testContactNumber = new ArrayList<String>();

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


    ViewPager mViewPager = (ViewPager) findViewById(R.id.pager);
    myAdapter = new MyAdapter();
    mViewPager.setAdapter(myAdapter);

    try {
        getAllContacts();
    } catch (Exception e) {
        // TODO Auto-generated catch block


        e.printStackTrace();
    }

}

@Override
public boolean onSupportNavigateUp() {
    onBackPressed();
    return true;
}

private void getAllContacts(Cursor cursor, List<String> category,
                           List<String> title) throws IllegalArgumentException {

    if (cursor != null && cursor.getCount() > 0) {
        cursor.moveToFirst();
        do {
            category.add(cursor.getString(cursor
                                        .getColumnIndexOrThrow("category")));
            title.add(cursor.getString(cursor
                                       .getColumnIndexOrThrow("title")));
        } while (cursor.moveToNext());
    }
}

private class MyAdapter extends PagerAdapter {

    public MyAdapter() {

        super();

    }

    @Override
    public int getCount() {

        return testContactName.size();

    }

    @Override
    public boolean isViewFromObject(View collection, Object object) {

        return collection == ((View) object);
    }

    @Override
    public Object instantiateItem(View collection, int position) {

        LayoutInflater inflater = (LayoutInflater) collection.getContext()
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View view = inflater.inflate(R.layout.list_items_layout, null);

        TextView contactName = (TextView) view.findViewById(R.id.id_here);
        TextView contactNumber = (TextView) view.findViewById(R.id.name_here);

        try {
            contactName.setText(testContactName.get(position));
            contactNumber.setText(testContactNumber.get(position));
        } catch (Exception e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        ((ViewPager) collection).addView(view, 0);
        return view;

    }

    @Override
    public void destroyItem(View collection, int position, Object view) {
        ((ViewPager) collection).removeView((View) view);
        myAdapter.notifyDataSetChanged();

    }

}

И вот мой курсор на DatabaseHelper. java

public Cursor getMorning(SQLiteDatabase sqLiteDatabase){
        Cursor cursor;
        String columns[] = {ID,TITLE,ARAB,DHIVEHI,REF,INFO,FAV,CAT,AUDIO,COUNT};
        String selection = CAT + "=?";
        String[] selectionArgs = {"2"};
        cursor = sqLiteDatabase.query(TABLE_NAME,columns,selection,selectionArgs,null,null,null);
        return cursor;
    }

Я надеюсь, что все поняли мой вопрос. Теперь я использую вышеупомянутый курсор на listview, но я не вижу способа использовать это на viewpager. Я хочу, чтобы это отображалось на виджере. Но я не знаю, как подойти к этому. Любая помощь будет оценена. PS: я очень плохо знаком с Android java кодированием. Успокойся.

...