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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
lexus213
3 / 3 / 0
Регистрация: 25.06.2011
Сообщений: 72
#1

необходимо разобраться в данной загвоздке - Программирование Android

26.07.2013, 17:38. Просмотров 921. Ответов 10
Метки нет (Все метки)

у меня есть 3 таба, переход между ними осуществляется с помощью FragmentPagerAdapter. Загвоздка заключается в следующем:
внешне код выглядит правильно, но он отказывается работать, при запуске его на моб устройствах.
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
public class MainActivity extends FragmentActivity {
    /** Called when the activity is first created. */
    private ViewPager mViewPager;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        mViewPager = (ViewPager) findViewById(R.id.viewpager);
        PagerTabStrip pagerTabStrip = (PagerTabStrip) findViewById(R.id.pagerTabStrip);
        // pagerTabStrip.setTextColor(color.white);
        // pagerTabStrip.setTabIndicatorColor(color.holo_red_dark);
 
        TitleAdapter titleAdapter = new TitleAdapter(getSupportFragmentManager());
        mViewPager.setAdapter(titleAdapter);
        mViewPager.setCurrentItem(0);
    }
 
//  private FragmentManager getSupportFragmentManager() {
        // TODO Auto-generated method stub
//      return null;
//  }
 
}
TitleAdapter:

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
public class TitleAdapter extends FragmentPagerAdapter {
    private final String titles[] = new String[] { "Паспорт", "Ведение бизнеса", "Поиск" };
    private final Fragment frags[] = new Fragment[titles.length];
 
    public TitleAdapter(FragmentManager flo) {
        super(flo);
        frags[0] = new FragmentView1();
        frags[1] = new FragmentView2();
        frags[2] = new FragmentView3();
    }
 
    @Override
    public CharSequence getPageTitle(int position) {
        Log.v("TitleAdapter - getPageTitle=", titles[position]);
        return titles[position];
    }
 
    @Override
    public Fragment getItem(int position) {
        Log.v("TitleAdapter - getItem=", String.valueOf(position));
        return frags[position];
    }
 
    @Override
    public int getCount() {
        return frags.length;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2013, 17:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос необходимо разобраться в данной загвоздке (Программирование Android):

В данной работе необходимо выполнить .... - Pascal
В данной работе необходимо выполнить задачу программирования типовых алгоритмов с использованием подпрограмм, разных видов. В задании...

Необходимо разобраться с кодом - JavaScript
Здравствуйте! Нужна очень ваша помощь) Дано задание: используя цикл while и do..while написать программу, которая предлагает через prompt...

Необходимо разобраться с конструктором! - C++
class Complex { public: // Конструктор по умолчанию // (в данном случае является также и конструктором преобразования) ...

Необходимо разобраться с формой - PHP
Есть форма: <form action="action.php" method="post"> <input type="submit" name="vote_1" value="голосовать за 1" class="btn btn-1...

Необходимо разобраться в коде - C++ COM
Функция вывода символа fputchar, разработанная в этом примере, позволяет вывести символ в последовательный порт. Функция принимает в...

Необходимо разобраться с ковариантностью - Java
Брюс Эккель, цитата и код из него: class Grain { public String toString() { return "Grain"; } } class Wheat extends...

10
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
26.07.2013, 17:41 #2
Цитата Сообщение от lexus213 Посмотреть сообщение
у меня есть 3 таба, переход между ними осуществляется с помощью FragmentPagerAdapter
А в коде ViewPager
Покажите код
new FragmentView1();
0
lexus213
3 / 3 / 0
Регистрация: 25.06.2011
Сообщений: 72
26.07.2013, 17:44  [ТС] #3
Цитата Сообщение от Digetix Посмотреть сообщение
А в коде 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
    public class FragmentView1 extends Activity {
 
    
 
 
            String[] colors = { "Получение паспорта", "Замена паспорта по сроку действия", "Замена паспорта при утере> "};
            
            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.one);
         
                
                ListView list = (ListView) findViewById(R.id.pups);
         
                ArrayAdapter<String> adapter = new ArrayAdapter<String>
                                                   (this, android.R.layout.simple_list_item_1, colors);
         
                
                list.setAdapter(adapter);
            
        
            list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    switch (position) {
                    case 0:
                        Intent intent = new Intent(FragmentView1.this, pp.class);
                        startActivity(intent);
                }
                    switch (position) {
                    case 1:
                        Intent intent = new Intent(FragmentView1.this, zp.class);
                        startActivity(intent);
                }
                    
                    switch (position) {
                    case 2:
                        Intent intent = new Intent(FragmentView1.this, zppu.class);
                        startActivity(intent);
                }
                    
                    
                }
            });
        }}
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
26.07.2013, 17:47 #4
Где-то я этот код уже видел
Цитата Сообщение от lexus213 Посмотреть сообщение
public class FragmentView1 extends Activity {
Вместо этого нужно
Java
1
public class FragmentView1 extends Fragment
И вместо this нужно getActivity
0
lexus213
3 / 3 / 0
Регистрация: 25.06.2011
Сообщений: 72
26.07.2013, 17:54  [ТС] #5
Цитата Сообщение от Digetix Посмотреть сообщение
Где-то я этот код уже видел

Вместо этого нужно
Java
1
public class FragmentView1 extends Fragment
И вместо this нужно getActivity
сейчас попробую
спасибо за совет)
может быть
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
26.07.2013, 17:56 #6
Это нужно сделать для всех трёх фрагментов
0
lexus213
3 / 3 / 0
Регистрация: 25.06.2011
Сообщений: 72
26.07.2013, 18:01  [ТС] #7
Цитата Сообщение от Digetix Посмотреть сообщение
Это нужно сделать для всех трёх фрагментов
ну это логично, но теперь проблема состоит в другом..

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
public class FragmentView1 extends Fragment {
 
    
 
 
            String[] colors = { "Получение паспорта", "Замена паспорта по сроку действия", "Замена паспорта при утере> "};
            
            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.one);
         
                
                ListView list = (ListView) findViewById(R.id.pups);
         
                ArrayAdapter<String> adapter = new ArrayAdapter<String>
                                                   (getActivity(), android.R.layout.simple_list_item_1, colors);
         
                
                list.setAdapter(adapter);
            
        
            list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    switch (position) {
                    case 0:
                        Intent intent = new Intent(FragmentView1.this, pp.class);
                        startActivity(intent);
                }
                    switch (position) {
                    case 1:
                        Intent intent = new Intent(FragmentView1.this, zp.class);
                        startActivity(intent);
                }
                    
                    switch (position) {
                    case 2:
                        Intent intent = new Intent(FragmentView1.this, zppu.class);
                        startActivity(intent);
                }
                    
                    
                }
            });
        }}
из-за чео могут вылетать данные ошибки??

The constructor Intent(FragmentView1, Class<zppu>) is undefined

The method setContentView(int) is undefined for the type FragmentView1

The method findViewById(int) is undefined for the type FragmentView1
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.07.2013, 22:45 #8
Цитата Сообщение от lexus213 Посмотреть сообщение
The constructor Intent(FragmentView1, Class<zppu>) is undefined
интенты не работают с фрагментами.
Цитата Сообщение от lexus213 Посмотреть сообщение
he method setContentView(int) is undefined for the type FragmentView1
The method findViewById(int) is undefined for the type FragmentView1
нет у фрагментов таких методов.

прочитайте какой-то гайд по фрагментам.
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
26.07.2013, 23:38 #9
Цитата Сообщение от lexus213 Посмотреть сообщение
ну это логично
Java
1
Intent intent = new Intent(FragmentView1.this, pp.class);
Цитата Сообщение от lexus213 Посмотреть сообщение
The constructor Intent(FragmentView1, Class<zppu>) is undefined
Здесь тоже нужно не FragmentView1.this, а getActivity
Цитата Сообщение от lexus213 Посмотреть сообщение
The method setContentView(int) is undefined for the type FragmentView1
В фрагментах нужно
Java
1
2
3
4
5
6
7
8
9
10
11
public class FragmentView1 extends Fragment {   
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {     
        
        View myView = inflater.inflate(R.layout.about, container, false);
        
      
        return myView;
    }
}
Добавлено через 2 минуты
Цитата Сообщение от lexus213 Посмотреть сообщение
The method findViewById(int) is undefined for the type FragmentView1
Если что-то нужно "найти" на этом фрагменте, то например
Java
1
EditText ed = (EditText)myView.findViewById(R.id....);
1
lexus213
3 / 3 / 0
Регистрация: 25.06.2011
Сообщений: 72
05.08.2013, 16:41  [ТС] #10
Цитата Сообщение от Digetix Посмотреть сообщение
Java
1
Intent intent = new Intent(FragmentView1.this, pp.class);
Здесь тоже нужно не FragmentView1.this, а getActivity

В фрагментах нужно
Java
1
2
3
4
5
6
7
8
9
10
11
public class FragmentView1 extends Fragment {   
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {     
        
        View myView = inflater.inflate(R.layout.about, container, false);
        
      
        return myView;
    }
}
Добавлено через 2 минуты

Если что-то нужно "найти" на этом фрагменте, то например
Java
1
EditText ed = (EditText)myView.findViewById(R.id....);
я извиняюсь за глупый вопрос, я с данными проблемами разобрался...осталась 1:
The constructor FragmentView3.bsAdapter(FragmentView3) is undefined

я думал должно быть все в норме тут...
Java
1
2
array_sort=new ArrayList<String> (Arrays.asList(listview_names));
        setListAdapter(new bsAdapter(this));
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.08.2013, 23:45 #11
это значит что в bsAdapter нет конструктора принимающего FragmentView3.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2013, 23:45
Привет! Вот еще темы с ответами:

Необходимо разобраться в программе - Assembler
Здравствуйте, есть большая программа, написана на С со вставками на ассемблере. Ассемблер не знаю почти никак, поэтому проблемно...

Необходимо разобраться со структурой БД - MS Access
Добрый день. Задание такое: Есть коллекция картин, содержащая сведения о названии картины, ее авторе, дате создания,...

Необходимо разобраться с WI-FI на AsusX51RL - Wi-Fi
Здравствуйте! У меня на ноутбуке при работе дома интернет через ADSL модем. Хочу выйти в Макдоналдс и попробовать поработать там через...

Необходимо разобраться с кодом - C++
Объясните пожалуйста что делает эта программа #include &lt;vector&gt; #include &lt;cstdio&gt; using namespace std; void f(int v, int...


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

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
05.08.2013, 23:45
Ответ Создать тему
Опции темы

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