Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
75 / 36 / 1
Регистрация: 03.08.2012
Сообщений: 447

Как отобразить ViewPager внутри другой активити

13.10.2013, 12:28. Показов 1996. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста. Изучил данный урок. И хочу сделать такую прокрутку страниц внутри класса, который наследуются от активити, а не от ФрагментАктивити. Прикладываю проект. Посмотрите пожалуйста у кого есть время. Спасибо.

Вкратце, что я хочу сделать:

Есть активити1 - это главная активность. В ней находится еще лэйаут1. Допустим в лэйауте1 я хочу отобразить мой прокручивающийся вью из этого урока. Проблема на данный момент заключается в том, что главная активи наследуется от Activity, и нельзя прям из нее все делать. Нужно в лэйаут1 ложить лэйаут из файла, который наследуется от FragmentActivity. И я уже запутался и не смог придумать как же из главного активити запустить второе активити, чтобы оно показывалось в первом и прокручивало свой лэйаут толкьо в лэйауте номер 1.

class ActivityTwo

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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.Log;
 
public class ActivityTwo extends FragmentActivity 
{
    static final String TAG = "MyLog2";
    static final int PAGE_COUNT = 10;
 
    ViewPager pager;
    PagerAdapter pagerAdapter;
 
    /*
     В onCreate создаем адаптер и устанавливаем его для ViewPager. Также для ViewPager создаем обработчик 
     событий. Он имеет три метода:
        onPageSelected – дате номер текущей отображенной страницы
        onPageScrolled – достаточно сложно объяснить на словах. Метод дает нам представление о текущем значении скроллера при 
пролистывании. Рекомендую поставить там запись в лог, полистать и посмотреть, что получается.
        onPageScrollStateChanged – сообщает нам о состоянии, в котором находится скроллер 
                                   (    SCROLL_STATE_IDLE – ничего не скролится, 
                                    SCROLL_STATE_DRAGGING – пользователь «тащит» страницу, 
                                    SCROLL_STATE_SETTLING – скроллер долистывает страницу до конца)
 
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        pager = (ViewPager) findViewById(R.id.pager);
        pagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
        pager.setAdapter(pagerAdapter);
 
        pager.setOnPageChangeListener(new OnPageChangeListener() 
        {
            @Override
            public void onPageSelected(int position) 
            {
                Log.d(TAG, "onPageSelected, position = " + position);
            }
 
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) 
            {
            }
 
            @Override
            public void onPageScrollStateChanged(int state) 
            {
            }
        });
    }
    
    /*
     * Класс FragmentPagerAdapter - абстрактный. Нам надо реализовать в нем пару методов. Для этого создаем 
     * класс MyFragmentPagerAdapter. В нем реализуем методы:
        getItem – по номеру страницы нам надо вернуть фрагмент, используем наш метод newInstance
        getCount – здесь мы должны возвращать кол-во страниц, используем константу
     */
    
    // обязательно помещаем PagerTitleStrip внутрь ViewPager. (смотри xml)
    
    /*
     * PagerTabStrip
       Заголовки могут участвовать в навигации. Для этого используется компонент PagerTabStrip. 
       Это аналог PagerTitleStrip, но при нажатии на заголовок он перелистывает страницу. 
       Его встраивание полностью аналогично только что рассмотренному PagerTitleStrip
     */
    private class MyFragmentPagerAdapter extends FragmentPagerAdapter 
    {
        public MyFragmentPagerAdapter(FragmentManager fm) 
        {
            super(fm);
        }
 
        // метод getPageTitle, чтобы PagerTitleStrip знал какой текст показывать в заголовке.
        @Override
        public CharSequence getPageTitle(int position) 
        {
          return "Title " + position;
        }
        
        @Override
        public Fragment getItem(int position) 
        {
            return PageFragment.newInstance(position);
        }
 
        @Override
        public int getCount() 
        {
            return PAGE_COUNT;
        }
    }
}

class MainActivity

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
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
 
public class MainActivity extends Activity
{
    public View view;
    public LayoutInflater layoutInflater;
    public LinearLayout lLay;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);
        
        //Intent intent = new Intent(this, ActivityTwo.class);
        //startActivity(intent);
        
        lLay = (LinearLayout) findViewById(R.id.lLay1);
        view = ((LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE)).inflate(R.layout.main, null, false);
        lLay.addView(view);
    }
}
class PageFragment

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
import java.util.Random;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
 
 
public class PageFragment extends Fragment 
{
  static final String ARGUMENT_PAGE_NUMBER = "arg_page_number";
  
  int pageNumber;
  int backColor;
  
  /*
   * newInstance создает новый экземпляр фрагмента и записывает ему в атрибуты число, 
   * которое пришло на вход. Это число – номер страницы, которую хочет показать ViewPager. 
   * По нему фрагмент будет определять, какое содержимое создавать в фрагменте.
   */
  static PageFragment newInstance(int page) 
  {
    PageFragment pageFragment = new PageFragment();
    Bundle arguments = new Bundle();
    
    arguments.putInt(ARGUMENT_PAGE_NUMBER, page);
    
    pageFragment.setArguments(arguments);
    
    return pageFragment;
  }
  
  /*
   * onCreate читаем номер страницы из аргументов. Далее формируем цвет из рандомных компонентов. 
   * Он будет использоваться для фона страниц, чтобы визуально отличать одну страницу от другой.
   */
  @Override
  public void onCreate(Bundle savedInstanceState) 
  {
    super.onCreate(savedInstanceState);
    pageNumber = getArguments().getInt(ARGUMENT_PAGE_NUMBER);
    
    Random rnd = new Random();
    backColor = Color.argb(40, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
  }
  
  /* 
   *  В onCreateView создаем View, находим на нем TextView, пишем ему простой текст с номером страницы и ставим фоновый цвет.
   */
  
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
  {
    View view = inflater.inflate(R.layout.fragment, null);
    
    TextView textNameMagic = (TextView) view.findViewById(R.id.magic_text_name);
    textNameMagic.setText("Page " + pageNumber);
    
    TextView textDescription = (TextView) view.findViewById(R.id.text_description_magic);
    textDescription.setText("Page " + pageNumber);
    
    ImageView imageView = (ImageView)view.findViewById(R.id.magic_image);
    
    return view;
  }
}
Вложения
Тип файла: rar test_Fragment.rar (1.18 Мб, 8 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.10.2013, 12:28
Ответы с готовыми решениями:

ViewPager внутри ListView, Как вставить?
Здравствуйте. Есть задача, внутри ListView сделать айтемы, которые содержат ViewPager Вот фрагмент кода, в котором я пытаюсь просто...

Как отобразить изображения в другом активити ?
Доброе утро, у меня такой вопрос. Имеются два активити, в первом находится несколько кнопок, при нажатии на которые, происходит переход...

Как сделать анимация проявления для Floating внутри Fragment(ViewPager)
Главная активити не содержит ничего, кроме вкладок реализованных при помощи ViewPager и TabLayout. Есть 6 вкладок, каждая из которых...

1
75 / 36 / 1
Регистрация: 03.08.2012
Сообщений: 447
13.10.2013, 12:44  [ТС]
Если откоментить в моем проекте:

Java
1
2
//Intent intent = new Intent(this, ActivityTwo.class);
//startActivity(intent);
то будет сразу понятно, что должно отображаться в главной активности. Кто в курсе немного, помогите пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.10.2013, 12:44
Помогаю со студенческими работами здесь

Подвисает ViewPager с фрагментами внутри
Собственно вот в чём соль. Есть ViewPager с фрагментами внутри, в каждом фрагменте есть изображение которое подгружается из ресурсов...

ViewPager.setCurrentItem() внутри LoaderCallbacks.onLoadFinished()
Столкнулся с проблемой. В приложении главная активность - список ListView, при выборе элемента списка открывается новая активность с...

Как автоматизировать процесс тестирования связи одной активити с другой?
Есть первая активити, которая стартует вторую startActivityForResult с requestCode. Соответственно в onActivityResult ловлю этот...

ViewPager отменить прокрутку из элемента View внутри
Всем доброго дня! Использую ViewPager для горизонтальной прокрутки слайдов (фрагмент + ImageView + немного логики внутри) для ImageView...

Как передать ссылку на элемент активити в другой класс чтобы провести операции надо ним
Такая задача сложилась. есть активити MainActivity: public class MainActivity extends Main {...} в нем есть элемент LinearLayout -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru