С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
#1

Установить иконку на tab - Программирование Android

13.07.2013, 17:22. Просмотров 1232. Ответов 4
Метки нет (Все метки)

Скажите как в коде ниже устанавливать иконки на каждую вкладку и затем вызвать нужную активность?

вот код:
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
public class CustomTabActivity extends Activity {
 
    private TabHost mTabHost;
 
    private void setupTabHost() {
        mTabHost = (TabHost) findViewById(android.R.id.tabhost);
        mTabHost.setup();
    }
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // construct the tabhost
        setContentView(R.layout.main);
 
        setupTabHost();
//      mTabHost.getTabWidget().setDividerDrawable(R.drawable.tab_divider); //это полоска
 
        setupTab(new TextView(this), "Tab 1");
        setupTab(new TextView(this), "Tab 2");
        setupTab(new TextView(this), "Tab 3");
        setupTab(new TextView(this), "Tab 4");
        
        
    }
 
    private void setupTab(final View view, final String tag) {
        View tabview = createTabView(mTabHost.getContext(), tag);
 
        TabSpec setContent = mTabHost.newTabSpec(tag).setIndicator(tabview).setContent(new TabContentFactory() {
            public View createTabContent(String tag) {return view;}
        });
        mTabHost.addTab(setContent);
 
    }
 
    private static View createTabView(final Context context, final String text) {
        View view = LayoutInflater.from(context).inflate(R.layout.tabs_bg, null);
//      TextView tv = (TextView) view.findViewById(R.id.tabsText);
//      tv.setText(text);
        return view;
    }
}
Раньше когда использовал табы, то пользовался такой конструкцией:

Java
1
2
3
4
5
6
7
intent = new Intent().setClass(this, UserActivity.class);
        spec = tabHost
                .newTabSpec("tab1")
                .setIndicator("Вкладка",
                        res.getDrawable(R.drawable.profile))
                .setContent(intent);
        tabHost.addTab(spec);
но как применить это к коду который я привел?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2013, 17:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Установить иконку на tab (Программирование Android):

Как можно в checkbox установить любую нужную мне иконку - Программирование Android
Как можно в checkbox установить любую нужную мне иконку? Или у togglebutton уменьшить нормально размер ато она получается слишком крупной...

Tab вложенный в tab - Программирование Android
Доброго времени суток, Натнулся на такую проблемку (и не наткнулся на её решение в интернете), есть потребность вложить TabActivity как...

ViewPager и Tab - Программирование Android
Здравствуйте. Есть приложение на андроид C# (файл проекта в приложении). Он нормально функционирует, но возникает проблема при...

Tab снизу экрана - Программирование Android
Хочу, чтобы таб находился снизу активити, какое значение для этого используется? (сверху, снизу, справо, слева) <item ...

tab - изменение внешнего вида - Программирование Android
Могу ли я на место как на скриншоте, на весь размер где обозначено пунктиром белым, на каждую вкладку поставить своё изображение (т.е. 4...

Tab Layout with Swipeable Views - Программирование Android
Делаю вкладки по этому примеру - http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/ Выдает ошибку в строке...

4
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
13.07.2013, 18:17 #2
добавьте картинку в tabs_bg лаяут.

Добавлено через 3 минуты
с активность все точно также, setContent(intent)

Добавлено через 49 секунд
а что мешает использовать нижнюю конструкцию если верхняя не устраивает?
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
13.07.2013, 18:45  [ТС] #3
Пытаюсь использовать так:
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
private TabHost tabHost;
    Intent intent;
 
    private void setupTabHost() {
        tabHost = (TabHost) findViewById(android.R.id.tabhost);
        TabWidget tabW = (TabWidget) findViewById(android.R.id.tabs);
 
        //tabHost.getTabWidget().setDividerDrawable(R.drawable.tab_divider);
        tabW.setStripEnabled(false);
 
 
        setupTab(new TextView(this), "tab1", getResources().getDrawable(R.drawable.tab1tabicon), new Intent().setClass(this, tab1Activity.class));
        setupTab(new TextView(this), "tab2", getResources().getDrawable(R.drawable.tab2tabicon), new Intent().setClass(this, tab2Activity.class));
        setupTab(new TextView(this), "tab3", getResources().getDrawable(R.drawable.tab3tabicon), new Intent().setClass(this, tab3Activity.class));
        setupTab(new TextView(this), "tab4", getResources().getDrawable(R.drawable.tab4tabicon), new Intent().setClass(this, tab4Activity.class));
        //setupTab(new ImageView(this), getResources().getDrawable(R.drawable.icon));
        tabHost.setCurrentTab(0);
 
        tabHost.setup();
    }
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        setupTabHost();
 
    }
 
    private void setupTab(final View view, final String tag, Drawable drawable, final Intent i) {
        View tabview = createTabView(tabHost.getContext(), tag, drawable);
        TabSpec setContent = tabHost.newTabSpec(tag).setIndicator(tabview).setContent(i);
        tabHost.addTab(setContent);
    }
 
    private static View createTabView(final Context context, final String text, final Drawable icon) {
        final View view = LayoutInflater.from(context).inflate(R.layout.tabs_bg, null);
        TextView tv = (TextView) view.findViewById(R.id.tabsText);
        tv.setText(text);
 
        ImageView bg_icon = (ImageView) view.findViewById(R.id.tab_bg);
        bg_icon.setImageDrawable(icon);
        return view;
    }
но приложение крашится и выдает:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
07-13 14:36:53.179: E/AndroidRuntime(630): FATAL EXCEPTION: main
07-13 14:36:53.179: E/AndroidRuntime(630): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.joshclemm.android.tabs/com.joshclemm.android.tabs.CustomTabActivity}: java.lang.NullPointerException
07-13 14:36:53.179: E/AndroidRuntime(630):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
07-13 14:36:53.179: E/AndroidRuntime(630):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
07-13 14:36:53.179: E/AndroidRuntime(630):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
07-13 14:36:53.179: E/AndroidRuntime(630):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
07-13 14:36:53.179: E/AndroidRuntime(630):  at android.os.Handler.dispatchMessage(Handler.java:99)
07-13 14:36:53.179: E/AndroidRuntime(630):  at android.os.Looper.loop(Looper.java:123)
07-13 14:36:53.179: E/AndroidRuntime(630):  at android.app.ActivityThread.main(ActivityThread.java:4627)
07-13 14:36:53.179: E/AndroidRuntime(630):  at java.lang.reflect.Method.invokeNative(Native Method)
07-13 14:36:53.179: E/AndroidRuntime(630):  at java.lang.reflect.Method.invoke(Method.java:521)
07-13 14:36:53.179: E/AndroidRuntime(630):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
07-13 14:36:53.179: E/AndroidRuntime(630):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
07-13 14:36:53.179: E/AndroidRuntime(630):  at dalvik.system.NativeStart.main(Native Method)
07-13 14:36:53.179: E/AndroidRuntime(630): Caused by: java.lang.NullPointerException
07-13 14:36:53.179: E/AndroidRuntime(630):  at android.widget.TabHost.addTab(TabHost.java:207)
07-13 14:36:53.179: E/AndroidRuntime(630):  at com.joshclemm.android.tabs.CustomTabActivity.setupTab(CustomTabActivity.java:150)
07-13 14:36:53.179: E/AndroidRuntime(630):  at com.joshclemm.android.tabs.CustomTabActivity.setupTabHost(CustomTabActivity.java:123)
07-13 14:36:53.179: E/AndroidRuntime(630):  at com.joshclemm.android.tabs.CustomTabActivity.onCreate(CustomTabActivity.java:143)
07-13 14:36:53.179: E/AndroidRuntime(630):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-13 14:36:53.179: E/AndroidRuntime(630):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
07-13 14:36:53.179: E/AndroidRuntime(630):  ... 11 more
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
13.07.2013, 19:39 #4
с NullPointerException-ом никогда не сталкивались?
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
13.07.2013, 19:57  [ТС] #5
Цитата Сообщение от V0v1k Посмотреть сообщение
с NullPointerException-ом никогда не сталкивались?
сталкивался, так вот понять не могу - почему? вылетает на этой строчке
Java
1
tabHost.addTab(setContent);
0
13.07.2013, 19:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2013, 19:57
Привет! Вот еще темы с ответами:

Передача данных между tab Activities - Программирование Android
как обмениваться данными между tab - вкладками, если учесть, что tab вкладки не в главном activity, это не помогло...

Передача данных между tab Activities - Программирование Android
Возможно ли обмениваться данными между tab вкладками(Активностями иначе говоря), допустим в одной активности EditText, ввели туда...

Как в TabWidget убрать Tab indicator? - Программирование Android
Можно ли его выключить, или хотя бы сделать прозрачного цвета?

Несколько Activity в одной вкладке TAB - Программирование Android
Как разместить несколько Activity в одной вкладке TAB?


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

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

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