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

Обратиться к фрагменту находящемуся в ViewPager - Android

Восстановить пароль Регистрация
Другие темы раздела
Android Передать String-путь в EditText AlertDialog'a ? http://www.cyberforum.ru/android-dev/thread1378293.html
Вызывается Алерт диалог, в нем кнопка выбора файла, выбираем файл, получаем его путь, String FilePath = intent.getData().getPath(); в Log.d путь пишет, в этом же диалоге есть поле EditText, в него этот путь надо поместить: делаю как-то так: edittext.setText(FilePath); но такой вариант почему-то не проходит(ошибка), (не знаю где конкретно это должно быть), и постоянно ругается на эту...
Android Создание проекта в qt creator Добрый всем вечер! Пытаюсь создать приложение на андроид в qt creator, но при дебаге выскакивает ошибка: :-1: error: Packaging Error: Command 'C:/Programms/apache/bin/ant.bat clean debug' failed.Exit code: 2 Вот весь текст ошибки... Creating package file ... Package deploy: Running command 'C:/Programms/apache/bin/ant.bat clean debug'. Registry key 'Software\JavaSoft\Java Runtime... http://www.cyberforum.ru/android-dev/thread1378091.html
С кодом не разберусь Android
Имеется пример (представлен ниже). Использую его в своей интерпретации, а именно массив yVals надо заполнить собственными значениями. Я конечно начинающий, но блин уже месяц третий как (как никак!) и не пойму почему не проходит мои добавления-изменения в виде (как только for цикл напишу - все методы в ошибке). Моя версия: XYSeries s1 = new XYSeries() { ...
Android Реализация Яндекс SpeechKit Cloud API
Добрый день! Пытаюсь встроить в своё приложение распознование речи от яндекса. У меня получилось прикрутить к нему SpeechKit SDK, но как оказалось по факту он способен распознавать только не большой текст, и результат отображается весь в конце диктовки + к тому максимальное количество запросов в день не должно превышать 1000, что для моего приложения недопустимо. Мне необходима обработка речи с...
Android Организация большого массива данных http://www.cyberforum.ru/android-dev/thread1378060.html
Имею около 1600 вопросов по типу: 1 У хворої після підняття важкої сумки раптово з’явився гострий біль у попереку. Рухи в хребті обмежені. Не викликається ахілловий рефлекс зліва, з’явилась анестезія больової чутливості на зовнішній поверхні лівої гомілки. Яке захворювання запідозрите? A *Попереково-крижовий радикуліт B Люмбаго C Люмбалгія D Неврит стегнового нерва
Android Мини игра для Планшетников под Андроид Доброго времени суток, Уважаемые разработчики. Я здесь очень давно не был, но в последний раз когда был - был очень благодарен за помощь. На этот раз мне бы очень помогли Ваши советы и опыт. Задача такая: Нужно написать игру для планшетников на Андроиде. Задаются 3 вопроса. Если пользователь положительно отвечает на него, прорисовывается в цвет либо собирается фрагмент картинки. Если на 2-й... подробнее

Показать сообщение отдельно
Serbis
3 / 3 / 2
Регистрация: 13.07.2012
Сообщений: 121
20.02.2015, 23:50  [ТС]     Обратиться к фрагменту находящемуся в ViewPager
Пожалуй переформулирую свой вопрос, так как в начале спросил как обычно, не разобравшись в теме. Сейчас бредовенький код из первого поста обрел вот такое обличие.

main_activity
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
public class MainActivity extends ActionBarActivity {
    private static final int NUM_PAGES = 3;
    private ViewPager mViewPager;
    private Context context;
    private ScreenSliderPagerAdapter mPagerAdapter;     //Адаптер для ViewPager активности телефонной версии
    private Fragment1 fragment1;
    Vector<Fragment> fragments;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        context = getApplicationContext();
        mViewPager = (ViewPager)findViewById(R.id.pager);
 
        fragments = new Vector<Fragment>();
        fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
        fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
        fragments.add(Fragment.instantiate(this, Fragment3.class.getName()));
        mViewPager.setOffscreenPageLimit(fragments.size());
 
        mPagerAdapter = new ScreenSliderPagerAdapter(getSupportFragmentManager(), fragments);
        mViewPager.setAdapter(mPagerAdapter);
        mViewPager.setCurrentItem(0);
 
        fragment1 = (Fragment1)mPagerAdapter.getRegisteredFragment(0);
        Toast.makeText(this, String.valueOf(fragment1), Toast.LENGTH_LONG).show();
 
    }
Адаптер
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
public class ScreenSliderPagerAdapter extends FragmentStatePagerAdapter {      //Подкласс адаптера отвечаюзего за инициализацию
    private List<Fragment> fragments;
    private SparseArray<Fragment> registeredFragments = new SparseArray<Fragment>();
 
 
 
    public ScreenSliderPagerAdapter(FragmentManager fm, Vector<Fragment> fragments) {        //компонента PageViewer если программу запустили
        super(fm);      // на устройтсве с малым размером экрана
        this.fragments = fragments;
    }
 
 
 
    @Override
    public Fragment getItem(int i) {
        return this.fragments.get(i);
    }
 
    @Override
    public int getCount() {
         return this.fragments.size();
    }
 
    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        Fragment fragment = (Fragment) super.instantiateItem(container, position);
        registeredFragments.put(position, fragment);
        return fragment;
    }
 
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        registeredFragments.remove(position);
        super.destroyItem(container, position, object);
    }
 
    public Fragment getRegisteredFragment(int position) {
        return registeredFragments.get(position);
    }
 
 
}
В чем суть, у адаптера есть метод instantiateItem, который должен регистрировать фрагмент, что бы к нему потом можно было обратиться через вызов getRegisteredFragment, но что нужно сделать в getItem для того что бы все работало как нужно я не понимаю. В данной реализации метод getRegisteredFragment возвращает null. Все уже перепробовал, ничего не получается
 
Текущее время: 12:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru