Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
hornet2319
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 3
#1

Навигация в ActionBar: exception при создании вкладок - Программирование Android

15.04.2014, 22:34. Просмотров 440. Ответов 0
Метки нет (Все метки)

Доброго времени суток ув. форумчане!
В процессе написания своего первого нормального приложения на ОС Android я столкнулся с остаточно неприятной ситуацией: код прост до жути, да и вроде все верно но при експорте (использую Eclipse) и запуске на телефоне с приложением происходит ошибка и его работа завершается. Код с ошибкой ниже:
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
public class TabsActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_tabs);           
                ActionBar bar = getActionBar();
                bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
                bar.setDisplayShowTitleEnabled(false);
                Tab tab1 = bar.newTab();
                tab1.setText(R.string.tab_down);
                tab1.setTabListener(new TabListener<DownFragment>(this,"download",DownFragment.class));
                  
                Tab tab2 = bar.newTab();
                tab2.setText(R.string.tab_inst);
                tab1.setTabListener(new TabListener<InstallFragment>(this,"installed",InstallFragment.class));
          
        
         bar.addTab(tab1);
         bar.addTab(tab2);
 
}
public static class TabListener<T extends Fragment> implements ActionBar.TabListener {
         private Fragment mFragment;
         private final Activity mActivity;
         private final String mTag;
         private final Class<T> mClass;
         /** Constructor used each time a new tab is created.
           * @param activity  The host Activity, used to instantiate the fragment
           * @param tag  The identifier tag for the fragment
           * @param clz  The fragment's Class, used to instantiate the fragment
           */
         public TabListener(Activity activity, String tag, Class<T> clz) {
                 mActivity = activity;
                 mTag = tag;
                 mClass = clz;
         }
         /* The following are each of the ActionBar.TabListener callbacks */
         public void onTabSelected(Tab tab, FragmentTransaction ft) {
                 // Check if the fragment is already initialized
                 if (mFragment == null) {
                         // If not, instantiate and add it to the activity
                         mFragment = Fragment.instantiate(mActivity, mClass.getName());
                         ft.add(android.R.id.content, mFragment, mTag);
                 } else {
                         // If it exists, simply attach it in order to show it
                         ft.attach(mFragment);
                 }
         }
         public void onTabUnselected(Tab tab, FragmentTransaction ft) {
                 if (mFragment != null) {
                         // Detach the fragment, because another one is being attached
                         ft.detach(mFragment);
                 }
         }
         public void onTabReselected(Tab tab, FragmentTransaction ft) {
                 // User selected the already selected tab. Usually do nothing.
         }
}
 
}
Когда я заккоменчую следующие 2 строки:
Java
1
2
bar.addTab(tab1);
bar.addTab(tab2);
Приложение работает, но табов, есстественно, нету.
http://www.cyberforum.ru/android-dev/thread613747.html
Для полного представления я привел exception из logcat:
E/AndroidRuntime(18088): java.lang.RuntimeException: Unable to start activity ComponentInfo{mercuryproject.main_package/mercuryproject.main_package.TabsActivity}: Java.lang.IllegalStateExceprion: Action Bar Tab must have a Callback
E/AndroidRuntime(18088): at mercuryproject.main_package.TabsActivity.onCreate(TabsActivity.java:46)
Нужен свежий взгляд и обьяснение где же я напартачил. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2014, 22:34
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Навигация в ActionBar: exception при создании вкладок (Программирование Android):

ActionBar Tabs наложение вкладок
Здравствуйте! Вот мой листенер на табы: package com.contedevel.timetable; ...

Ошибка при запуске AsyncTask при нажатии на пункт ActionBar
Здравствуйте, почему при нажатии на пункт Action Bar'а вылетает ошибка? ...

ActionBar при < android 3
Добрый день. Скажу сразу, что я полный нуб в этой теме. Мне нужно использовать...

Сменна иконки на ActionBar при её нажатие
Здравствуйте! У меня на ActionBar должна быть иконка для включения и...

Смена темы ActionBar при нажатии на кнопку
Подскажите пожалуйста как можно изменить тему ActionBar, при нажатии на кнопку.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2014, 22:34
Привет! Вот еще темы с решениями:

Белый фон при прокрутке listview и actionbar в android 2.1
При прокрутке ListView на Android 2.3 появляется белый фон. Ставил Cache Color...

Запретить изменение положения title при добавлении элементов в ActionBar
Привет всем! Размещаю title посередине а когда добавляю в actionbar menu...

Изменение значение при нажатии в actionbar, а именно в option menu
Подскажите как в action bar в выплывающем меню можно было бы настроить...

При любой ориентации экрана табы были всегда под ActionBar
Уважаемые программисты! Подскажите, пожалуйста как можно сделать так, чтобы...


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

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

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