Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Dawidze
4 / 0 / 0
Регистрация: 12.05.2015
Сообщений: 10
1

Обращение к View элементам фрагмента

25.06.2015, 15:19. Просмотров 2542. Ответов 20
Метки нет (Все метки)

Добрый день. Нужна помощь, уже не знаю что делать.
Имеется три идентичных фрагмента с одним TextView (id = textview1).
Имеется Activity, в которой расположен ViewPager. В ViewPager добавляю эти фрагменты.
По созданию Activity и в процессе работы (каждые скажем 10 сек) требуется обновлять интерфейс фрагментов.

Суть проблемы - не могу обратиться к View элементам фрагментов. Текст который я привожу ошибок не выдает, но и результата нет

Код 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
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
package com.slide;
 
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.PagerTabStrip;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
 
public class MainActivity extends FragmentActivity {
    
    ViewPager pager;
    PagerAdapter pagerAdapter;
    private ViewPager mViewPager;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        mViewPager = (ViewPager) findViewById(R.id.pager);
        PagerTabStrip pagerTabStrip = (PagerTabStrip) findViewById(R.id.pagerTabStrip);
        pagerTabStrip.setDrawFullUnderline(true);
        
        TitleAdapter titleAdapter = new TitleAdapter(getSupportFragmentManager());
        mViewPager.setAdapter(titleAdapter);
        mViewPager.setCurrentItem(0);
        
        
        LayoutInflater inflater = LayoutInflater.from(this);
        View page = inflater.inflate(R.layout.about, null);
        TextView textView = (TextView) page.findViewById(R.id.textView1);
        textView.setText("TEST!!!");
 
    }
    
    public class TitleAdapter extends FragmentPagerAdapter {
        private final String titles[] = getResources().getStringArray(R.array.data); 
        
        private final Fragment frags[] = new Fragment[titles.length];
     
        public TitleAdapter(FragmentManager fm) {
            super(fm);
            frags[0] = new FragmentView1();
            frags[1] = new FragmentView2();
            frags[2] = new FragmentView3();
        }
     
        @Override
        public CharSequence getPageTitle(int position) {
            return titles[position];
        }
     
        @Override
        public Fragment getItem(int position) {
            return frags[position];
        }
     
        @Override
        public int getCount() {
            return frags.length;
        }
    }
 
}
Код FragmentView1
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.slide;
 
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
 
public class FragmentView1 extends Fragment {   
    
    public View myView;
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {     
        
        myView = inflater.inflate(R.layout.about, container, false);
        
      
        return myView;
    }
    
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2015, 15:19
Ответы с готовыми решениями:

Обращение к элементам фрагмента из активити
Есть необходимость в программе менять значение TextView находящегося во...

Обращение к элементам другой Активити
Есть xml-файл главной активити main.xml который содержит поле ввода <EditText ...

Обращение к View-элементу в GridLayout
Имеется Gridlayout, созданный программно. Есть RoundButton, созданный в...

Обращение к элементам активити из другого класса
Добрый день. Ломаю голову битый час, все не могу понять, почему у меня не...

Обращение к другому элементам другой формы?
Здравствуйте. Подскажите: есть несколько activity, как обратиться из одной, к...

20
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
01.07.2015, 09:36 21
Dawidze, а еще можно не добавлять cr, а проверять так
Java
1
2
3
if(textView != null){
    textView.setText(text);
}
0
01.07.2015, 09:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2015, 09:36

Почему в одном background потоке можно обращаться к View-элементам а в другом нет?
Раньше я всегда думал, что в любом потоке, кроме UI, использовать или...

Повторное создание фрагмента внутри фрагмента ViewPager
Доброго времени суток! Использую внутри фрагмента элемент ViewPager, который...

В чем разница (View view) и (View v)
Я только начинаю изучать программирование под андроид (до этого вобще...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru