Урок 77. Tab - вкладки. TabActivity. Activity, как содержимое вкладки
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
меня интересует, что нужно писать в манифесте?
из-за него у меня ничего не запускается, (
из-за него у меня ничего не запускается, (
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
всем привет!
почему может не срабатывать onResume() и onPause() в активити на вкладках при переключении? onCreate() и onStart() при этом отлично срабатывают при первом открытии закладки с активити.
почему может не срабатывать onResume() и onPause() в активити на вкладках при переключении? onCreate() и onStart() при этом отлично срабатывают при первом открытии закладки с активити.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Ответить на вопрос не смогу (может проблема в коде, может в устройстве на котором он запускается, может еще в чём-то), но TabActivity уже устарел(а). И если в учебных целях проходите данный урок, то можете не заморачиваться и идти дальше. Если табы всё-таки нужны очень, то лучше смотреть в сторону этого урокаmarina_ писал(а):всем привет!
почему может не срабатывать onResume() и onPause() в активити на вкладках при переключении? onCreate() и onStart() при этом отлично срабатывают при первом открытии закладки с активити.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Здравствуйте. Я использую ТабАктивити во вкладках, они осуществляют отображение некоторой информации из интернета и обновление содержимого привязал на кнопку.
Подскажите, как сделать автообновление содержимого вкладок при переключении между ними(или как принято делать обновление вкладки)?
Подскажите, как сделать автообновление содержимого вкладок при переключении между ними(или как принято делать обновление вкладки)?
-
- Сообщения: 93
- Зарегистрирован: 05 мар 2014, 06:20
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Ну например таймер привязать.Xetag писал(а):Здравствуйте. Я использую ТабАктивити во вкладках, они осуществляют отображение некоторой информации из интернета и обновление содержимого привязал на кнопку.
Подскажите, как сделать автообновление содержимого вкладок при переключении между ними(или как принято делать обновление вкладки)?
Linux Fedora RFRemix + Intellij Idea
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
siberprogs писал(а):Ну например таймер привязать.Xetag писал(а):Здравствуйте. Я использую ТабАктивити во вкладках, они осуществляют отображение некоторой информации из интернета и обновление содержимого привязал на кнопку.
Подскажите, как сделать автообновление содержимого вкладок при переключении между ними(или как принято делать обновление вкладки)?
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
-
- Сообщения: 93
- Зарегистрирован: 05 мар 2014, 06:20
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Я имел ввиду что можно не только на переключение вкладок автообновлениеFoenix писал(а):
делать.
Linux Fedora RFRemix + Intellij Idea
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
И подскажите, почему в строчке <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').
Все делал, как в уроке, за исключением смены изображения, в других уроках смотрел пример загрузки изображения - везде один метод и вызов, а у меня по такому методу данная ошибка.
Все делал, как в уроке, за исключением смены изображения, в других уроках смотрел пример загрузки изображения - везде один метод и вызов, а у меня по такому методу данная ошибка.
-
- Сообщения: 93
- Зарегистрирован: 05 мар 2014, 06:20
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
В папке drawable не найден ресурс с именем tabgreenpic.(грубый перевод)Xetag писал(а): Error: No resource found that matches the given name (at 'drawable' with value '@drawable/tabgreenpic').
А там точно есть картинка tabgreenpic.png?
Linux Fedora RFRemix + Intellij Idea
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Да, создал папку drawable и поместил в нее изображение.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Переделал, исправил и заработало, но изображения во вкладках не отображаются и текст не полностью помещается.
Надо добавить допустимый размер?
Надо добавить допустимый размер?
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Вообщем, использую я фрагменты, и хочу из фрагмен_маин создать ещё один фрагмент который поддерживает 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]
Тут подумал... а смысл вызывать фрагмент, если можно вызвать активити... но как ??
Ошибка в строке 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]
Тут должна быть подпись.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Вообще-то так не стоит делать - из одного фрагмента создавать другой.
Все фрагменты нужно создавать и удалять только в Activity. Activity при работе с фрагментами является как бы диспетчером по управлению фрагментами.
Фрагмент не является самостоятельным компонентом, он всегда привязан к Activity.
Все фрагменты нужно создавать и удалять только в Activity. Activity при работе с фрагментами является как бы диспетчером по управлению фрагментами.
Фрагмент не является самостоятельным компонентом, он всегда привязан к Activity.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
ок. Я планирую приложение, в котором главным окном (главным по функционалу), будет именно окно с табами. Т.е. мне нужно с маин-активити создать сразу фрагмент который поддерживает табы.. вроде так... И вопрос в догонку... зачем еклипс советует создавать сразу фрагмент и в нем всё делать ? раньше ведь сразу все делали в главном активити.
Тут должна быть подпись.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Немножко не так, eclipse (а точнее ADT) создает готовый макет приложения, в котором гугловцы как бы намекают, что программист должен использовать фрагменты для построения приложений, чтобы иметь возможность создавать гибкие интерфейсы способные адаптироваться под любые размеры экранов. На маленьких экранах будет, скажем, один фрагмент, на больших, где место позволяет, можно разместить несколько фрагментов с дополнительной информацией. Но этим возможности фрагментов не ограничены. Фрагмент не заменяет Activity, а существенно его дополняет, позволяет более динамично строить интерфейс, как из кирпичиков. А Activity всегда был, есть и будет основным компонентом Android. Первоначально Activity тоже пытались адаптировать для этого, но потом оказалось, что их возможности ограничены системой, в частности, вы не можете вывести 2 Activity на один экран в одном приложении, а фрагменты это позволяют.AlexVinn писал(а): И вопрос в догонку... зачем еклипс советует создавать сразу фрагмент и в нем всё делать ? раньше ведь сразу все делали в главном активити.
Фрагмент соединяет в себе представление, данные и методы для управления ими, причем все это можно повторно использовать, мы можем хоть 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-й версии выше.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Так как всё же правильно организовать небольшое приложение с вкладками ?
В приложении планирую активити или фрагмент с 3-мя вкладками (где их праильно делать), настройки приложения (тут понятно), ещё пара активити или фрагментов.
В приложении планирую активити или фрагмент с 3-мя вкладками (где их праильно делать), настройки приложения (тут понятно), ещё пара активити или фрагментов.
Тут должна быть подпись.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Пока что сделал всё как в уроке. Как сделать таие вкладки как на скриншоте урока ? Большие и с возможностью лого на них добавлять.
Тут должна быть подпись.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
При смене ориентация экрана все возвращается на начальную позицию.. Как можно сделать так чтобы при смене ориентация все оставалось на месте ?)
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
http://startandroid.ru/ru/uroki/vse-uro ... krana.htmlskull писал(а):При смене ориентация экрана все возвращается на начальную позицию.. Как можно сделать так чтобы при смене ориентация все оставалось на месте ?)
- FastRus1804
- Сообщения: 49
- Зарегистрирован: 22 июн 2014, 11:20
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Код: Выделить всё
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 вкладки не срабатывает.