Форум программистов, компьютерный форум CyberForum.ru

Как листать фрагменты в ViewPager по кнопке? - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Переключение между камерами http://www.cyberforum.ru/android-dev/thread1764950.html
Проблема в том, что по нажатию на switch алгоритм срабатывает,но на surfaceview все еще отображается изображение с задней камеры,а при перезагрузке в приложение отрисовывается уже верно. Прошу совета как исправить сей конфуз. mySwitch = (Switch) findViewById(R.id.switch1); mySwitch.setChecked(false); mySwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() { ...
Android Получение xml файла из бинарных данных Пишу андроид-клиент, который взаимодействует с веб-сервером. Веб-сервер 1С преобразует XML файл в тип hexBinary (http://www.w3.org/2001/XMLSchema) и отравляет на клиента. Правильно ли я понимаю, что теперь на клиенте нужно преобразовать эти двоичные данные в XML файл и уже дальше работать с файлом? Если это так, то подскажите, пожалуйста, как выполнить такое преобразование, чтобы получить файл?... http://www.cyberforum.ru/android-dev/thread1764930.html
Android Не хочет работать программа, что делать? Android Studio + VK API
Сделал программу в Android Studio, использовал VK api. Вроде бы, авторизация должна работать. Я скомпилировал apk и установил на телефон, но при запуске пишет следующие(пишет в activity авторизации): {"error":"invalid_request","error_description":"sdk_fingerprint is incorrect"} . Что это значит? Я в настройках своего приложения ВК прописал, как положено: Main Activity для Android, Название пакета...
Android Передать через intent ArrayList объектов своего класса
У меня есть ArrayList из обьектов моего класса. Мне нужно передать это через intent в другое активити. Значит мой класс должен реализовывать интерфейс Parcelable. Но дело в том, что в этом моем классе есть поля, которые тоже представляют собой обьекты других моих классов(как бы композиция). Как запихнуть в parcel полностью такой класс - композицию? Получается другие объекты которые входят в этот...
Android Объясните конструкцию pulltorefresh http://www.cyberforum.ru/android-dev/thread1764375.html
для чего придумано обновление жестом pull to refresh? Вот у меня есть JSON я его получил с сервера, распарсил, закешировал отобразил данные с него в список или таблицу. И я хочу встроить жест pull to refresh для обновления данных. Вот у меня вопрос откуда pull to refresh обычно берет данные для обновления? Он делает сетевой запрос на сервер и подгружает новые данные с сервера или берет данные для...
Android Как получить файл XML от веб-сервиса Только начал изучать программирование в Android. Пытаюсь на андроид-клиенте получить от веб-сервиса 1с файл XML. Взаимодействие осуществляется с помощью ksoap2-android-assembly-3.4.0-jar-with-dependencies.jar. Из андроид-клиента вызывается метод веб-сервиса, который формирует файл XML и возвращает его в виде двоичных данных. Подскажите, пожалуйста, как правильно обработать двоичные данные на... подробнее

Показать сообщение отдельно
arvalon
15 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 111

Как листать фрагменты в ViewPager по кнопке? - Android

17.06.2016, 18:26. Просмотров 328. Ответов 3
Метки (Все метки)

Доброго дня.

Есть фрагменты, Листаемые в ViewPager'е. Помимо возможности перелистывания фрагментов жестами (и в шапке, во вкладках) хотелось что бы аналогичные действия срабатывали по кнопкам "Следующий"/"Предыдущий". Добавил обработчик события на кнопку но далее не понимаю что надо сделать...

Класс фрагмента:
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class EquipmentFragment extends Fragment {
 
    private Button buttonNext;
 
    public static Fragment getInstance()
    {
        Fragment fragment = new EquipmentFragment();
        return fragment;
    }
 
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
 
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_equipments, container, false);
 
        buttonNext=(Button)view.findViewById(R.id.equipment_next);
        buttonNext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO: 17.06.2016  
            }
        });
 
        return view;
    }
}


Класс активности, содержащей вкладки и viewPager с фрагментами
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
public class Equipments extends AppCompatActivity {
 
    private ViewPager viewPager;
    private Toolbar toolbar;
    private TabLayout tabLayout;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_equipments);
 
 
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setTitle(R.string.equipments);
        getSupportActionBar().setDisplayShowTitleEnabled(true);
 
 
        viewPager = (ViewPager) findViewById(R.id.viewpager);
        setupViewPager(viewPager);
 
        tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);
 
    }
 
    private void setupViewPager(ViewPager viewPager)
    {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
 
        DatabaseAccess databaseAccess=DatabaseAccess.getInstance(this);
        databaseAccess.open();
        List<Equipment> equipments=databaseAccess.getFullEquipments();
        for (Equipment equipment:equipments){
            adapter.addFragment(EquipmentFragment.getInstance(equipment.getId(),equipment.getRuname(),equipment.getImage(),equipment.getAvaliable()), String.valueOf(equipment.getId()));
        }
        databaseAccess.setActivationDB();
        databaseAccess.close();
 
        viewPager.setAdapter(adapter);
 
    }
 
    static class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> fragmentList = new ArrayList<>();
        private final List<String> tabs = new ArrayList<>();
 
        public ViewPagerAdapter(FragmentManager fm) {
            super(fm);
        }
 
        public void addFragment(Fragment fragment, String title)
        {
            fragmentList.add(fragment);
            tabs.add(title);
        }
 
        @Override
        public Fragment getItem(int position) {
            return fragmentList.get(position);
        }
 
 
        public Fragment setItem(){
            return viewPager.setCurrentItem(getItem(+1));
        }
 
 
        @Override
        public int getCount() {
            return fragmentList.size();
        }
 
        @Override
        public CharSequence getPageTitle(int position) {
            return tabs.get(position);
        }
    }
}


Поискал и нашёл на stackoverflow.com что-то подходящее и написал метод setItem в класс ViewPagerAdapter

Java
1
2
3
public Fragment setItem(){
            return viewPager.setCurrentItem(getItem(+1));
        }
ЧТо-то не так, компилятор ругается на viewPager в этом методе, Error: non-static variable viewPager cannot be referenced from a static context.
Подскажите пожалуйста, какой метод написать, что вызвать в обработчике событий кнопок "Вперёд-Назад"?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru