Урок 77. Tab - вкладки. TabActivity. Activity, как содержимое вкладки

Обсуждение уроков
OWL
Сообщения: 1
Зарегистрирован: 31 янв 2014, 03:41

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение OWL » 31 янв 2014, 03:44

меня интересует, что нужно писать в манифесте?
из-за него у меня ничего не запускается, (

marina_
Сообщения: 1
Зарегистрирован: 16 фев 2014, 12:15

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение marina_ » 16 фев 2014, 12:20

всем привет!
почему может не срабатывать onResume() и onPause() в активити на вкладках при переключении? onCreate() и onStart() при этом отлично срабатывают при первом открытии закладки с активити.

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение klblk » 17 фев 2014, 05:38

marina_ писал(а):всем привет!
почему может не срабатывать onResume() и onPause() в активити на вкладках при переключении? onCreate() и onStart() при этом отлично срабатывают при первом открытии закладки с активити.
Ответить на вопрос не смогу (может проблема в коде, может в устройстве на котором он запускается, может еще в чём-то), но TabActivity уже устарел(а). И если в учебных целях проходите данный урок, то можете не заморачиваться и идти дальше. Если табы всё-таки нужны очень, то лучше смотреть в сторону этого урока

Xetag
Сообщения: 6
Зарегистрирован: 08 апр 2014, 16:11

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение Xetag » 08 апр 2014, 16:14

Здравствуйте. Я использую ТабАктивити во вкладках, они осуществляют отображение некоторой информации из интернета и обновление содержимого привязал на кнопку.
Подскажите, как сделать автообновление содержимого вкладок при переключении между ними(или как принято делать обновление вкладки)?

siberprogs
Сообщения: 93
Зарегистрирован: 05 мар 2014, 06:20

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение siberprogs » 08 апр 2014, 16:57

Xetag писал(а):Здравствуйте. Я использую ТабАктивити во вкладках, они осуществляют отображение некоторой информации из интернета и обновление содержимого привязал на кнопку.
Подскажите, как сделать автообновление содержимого вкладок при переключении между ними(или как принято делать обновление вкладки)?
Ну например таймер привязать.
Linux Fedora RFRemix + Intellij Idea

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение Foenix » 08 апр 2014, 17:12

siberprogs писал(а):
Xetag писал(а):Здравствуйте. Я использую ТабАктивити во вкладках, они осуществляют отображение некоторой информации из интернета и обновление содержимого привязал на кнопку.
Подскажите, как сделать автообновление содержимого вкладок при переключении между ними(или как принято делать обновление вкладки)?
Ну например таймер привязать.
:shock: :shock: :shock:
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

siberprogs
Сообщения: 93
Зарегистрирован: 05 мар 2014, 06:20

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение siberprogs » 08 апр 2014, 18:20

Foenix писал(а): :shock: :shock: :shock:
Я имел ввиду что можно не только на переключение вкладок автообновление
делать.
Linux Fedora RFRemix + Intellij Idea

Xetag
Сообщения: 6
Зарегистрирован: 08 апр 2014, 16:11

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение Xetag » 08 апр 2014, 19:04

И подскажите, почему в строчке <item android:drawable="@drawable/tabgreenpic" android:state_selected="true"></item> вылезает ошибка- error: Error: No resource found that matches the given name (at 'drawable' with value '@drawable/tabgreenpic').
Все делал, как в уроке, за исключением смены изображения, в других уроках смотрел пример загрузки изображения - везде один метод и вызов, а у меня по такому методу данная ошибка.

siberprogs
Сообщения: 93
Зарегистрирован: 05 мар 2014, 06:20

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение siberprogs » 08 апр 2014, 19:24

Xetag писал(а): Error: No resource found that matches the given name (at 'drawable' with value '@drawable/tabgreenpic').
В папке drawable не найден ресурс с именем tabgreenpic.(грубый перевод)
А там точно есть картинка tabgreenpic.png?
Linux Fedora RFRemix + Intellij Idea

Xetag
Сообщения: 6
Зарегистрирован: 08 апр 2014, 16:11

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение Xetag » 08 апр 2014, 19:33

Да, создал папку drawable и поместил в нее изображение.

Xetag
Сообщения: 6
Зарегистрирован: 08 апр 2014, 16:11

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение Xetag » 09 апр 2014, 12:08

Переделал, исправил и заработало, но изображения во вкладках не отображаются и текст не полностью помещается.
Надо добавить допустимый размер?

AlexVinn
Сообщения: 81
Зарегистрирован: 04 апр 2014, 04:56

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение AlexVinn » 30 апр 2014, 23:45

Вообщем, использую я фрагменты, и хочу из фрагмен_маин создать ещё один фрагмент который поддерживает Tab. Но создать из фрагмента новый фрагмент - не получается. Делаю по аналогии как с майн-активити вызывается фрагмент, но, не получается.
Тут подумал... а смысл вызывать фрагмент, если можно вызвать активити... но как ??


Ошибка в строке 66
Красным - .add(R.id.container, new FragmentTabHostActivity())
Пишет - пишет бред, так как сам знаю что что-то реально не правильно.
MainActivity
[syntax=java5]package com.example.p0771_tabintent;

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTabHost;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;

public class MainActivity extends ActionBarActivity {

final String TAG = "myLogs";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}

/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {

public PlaceholderFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false);

if (savedInstanceState == null) {
getActivity().getSupportFragmentManager().beginTransaction()
.add(R.id.container, new FragmentTabHostActivity())
.commit();
}

return rootView;
}
}

public static class FragmentTabHostActivity extends FragmentTabHost {

public FragmentTabHostActivity(Context context) {
super(context);
// TODO Auto-generated constructor stub
}

public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View TabFragView = inflater.inflate(R.layout.fragment_tabhost,
container, false);
Log.d("TAG", "CreateView TabHost Fr");
return TabFragView;
}

}

}
[/syntax]
Тут должна быть подпись.

Viewer
Сообщения: 180
Зарегистрирован: 30 апр 2014, 11:42

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение Viewer » 01 май 2014, 00:37

Вообще-то так не стоит делать - из одного фрагмента создавать другой.
Все фрагменты нужно создавать и удалять только в Activity. Activity при работе с фрагментами является как бы диспетчером по управлению фрагментами.
Фрагмент не является самостоятельным компонентом, он всегда привязан к Activity.

AlexVinn
Сообщения: 81
Зарегистрирован: 04 апр 2014, 04:56

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение AlexVinn » 01 май 2014, 00:41

ок. Я планирую приложение, в котором главным окном (главным по функционалу), будет именно окно с табами. Т.е. мне нужно с маин-активити создать сразу фрагмент который поддерживает табы.. вроде так... И вопрос в догонку... зачем еклипс советует создавать сразу фрагмент и в нем всё делать ? раньше ведь сразу все делали в главном активити.
Тут должна быть подпись.

Viewer
Сообщения: 180
Зарегистрирован: 30 апр 2014, 11:42

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение Viewer » 01 май 2014, 09:08

AlexVinn писал(а): И вопрос в догонку... зачем еклипс советует создавать сразу фрагмент и в нем всё делать ? раньше ведь сразу все делали в главном активити.
Немножко не так, eclipse (а точнее ADT) создает готовый макет приложения, в котором гугловцы как бы намекают, что программист должен использовать фрагменты для построения приложений, чтобы иметь возможность создавать гибкие интерфейсы способные адаптироваться под любые размеры экранов. На маленьких экранах будет, скажем, один фрагмент, на больших, где место позволяет, можно разместить несколько фрагментов с дополнительной информацией. Но этим возможности фрагментов не ограничены. Фрагмент не заменяет Activity, а существенно его дополняет, позволяет более динамично строить интерфейс, как из кирпичиков. А Activity всегда был, есть и будет основным компонентом Android. Первоначально Activity тоже пытались адаптировать для этого, но потом оказалось, что их возможности ограничены системой, в частности, вы не можете вывести 2 Activity на один экран в одном приложении, а фрагменты это позволяют.
Фрагмент соединяет в себе представление, данные и методы для управления ими, причем все это можно повторно использовать, мы можем хоть 10 фрагментов вывести на экран с одним и тем же кодом. Так же используя фрагменты мы можем легко и быстро заменять один фрагмент другим, причем с теми же плюшками как это делается для Activity со стеком и пр.

То что eclipse создает в макете фрагмент, это вовсе не означает, что нужно "в нем всё делать", это всего лишь один из кирпичиков вашего интерфейса, вы можете добавить этих кирпичиков еще сколько угодно и "в них все делать". Кстати, вы не задумывались почему этот фрагмент назвали PlaceholderFragment? Не MainFragment по аналогии с MainActivity, а именно так. Placeholder это фрагмент-заставка, один из паттернов программистов, который существует наверное с самого основания этого ремесла )) Т.е., когда приложение запускается, подготавливает данные (это может занимать какое-то время), чтобы пользователь "не скучал", на экран выводится заставка, потом она, когда все будет готово, сменяется на основной экран приложения. Т.е. гугловцы какбы бы намекают, что вы возможно тоже захотите использовать это прием, выведете заставку, затем подготовите данные для другого фрагмента и смените этот фрагмент-заставку другим фрагментом.

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

Вот, кстати, и гугл дает примеры http://developer.android.com/reference/ ... tml#newTab()
а здесь показано как это реализуется с помощью библиотеки android.support.v4 - http://developer.android.com/reference/ ... ivity.html т.е. код будет совместим с Android API начиная с 4-й версии выше.

AlexVinn
Сообщения: 81
Зарегистрирован: 04 апр 2014, 04:56

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение AlexVinn » 01 май 2014, 14:05

Так как всё же правильно организовать небольшое приложение с вкладками ?
В приложении планирую активити или фрагмент с 3-мя вкладками (где их праильно делать), настройки приложения (тут понятно), ещё пара активити или фрагментов.
Тут должна быть подпись.

AlexVinn
Сообщения: 81
Зарегистрирован: 04 апр 2014, 04:56

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение AlexVinn » 01 май 2014, 15:16

Пока что сделал всё как в уроке. Как сделать таие вкладки как на скриншоте урока ? Большие и с возможностью лого на них добавлять.
Тут должна быть подпись.

skull
Сообщения: 48
Зарегистрирован: 22 апр 2014, 15:49

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение skull » 08 май 2014, 07:07

При смене ориентация экрана все возвращается на начальную позицию.. Как можно сделать так чтобы при смене ориентация все оставалось на месте ?)

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение klblk » 08 май 2014, 08:26

skull писал(а):При смене ориентация экрана все возвращается на начальную позицию.. Как можно сделать так чтобы при смене ориентация все оставалось на месте ?)
http://startandroid.ru/ru/uroki/vse-uro ... krana.html

Аватара пользователя
FastRus1804
Сообщения: 49
Зарегистрирован: 22 июн 2014, 11:20

Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер

Сообщение FastRus1804 » 12 авг 2014, 11:11

Код: Выделить всё

public class OneActivity extends Activity implements View.OnClickListener{

    TextView tv;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.one);

        tv= (TextView) findViewById(R.id.tv);


    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.bt:
              tv.setText("123");

                break;
        }
    }
}

Нажатие кнопки в 1 вкладки не срабатывает.

Ответить