Урок 77. Tab - вкладки. TabActivity. Activity, как содержимое вкладки
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Как можно вызвать функцию из другой Activity?
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
1) скопировать метод в другую активити;igrok-vip писал(а):Как можно вызвать функцию из другой Activity?
2) сделать метод статическим;
3) иметь ссылку на первую активити что бы вызвать её метод с другого места;
P.S. вот три варианта и все они плохи как и сам вопрос, так как если возникает такой вопрос то означает что архитектура приложения хромает.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
У меня в MainActivity метод:
public void setTab (String tag){
TabHost tabHost = getTabHost();
tabHost.setCurrentTabByTag(tag);
}
Если его скопировать в ActivityOne, то ActivityOne опять же не знает что такое getTabHost.
Если его сделать static, то MainActivity ругается на getTabHost(что-то типо нельзя применить к не статичному методу)
Про ссылку нашёл вот это:
Скажите правильно ли делаю, и что за первый параметр object в invoke?
На счёт архитектуры приложения вы скорее всего правы, это первое моё приложение)
public void setTab (String tag){
TabHost tabHost = getTabHost();
tabHost.setCurrentTabByTag(tag);
}
Если его скопировать в ActivityOne, то ActivityOne опять же не знает что такое getTabHost.
Если его сделать static, то MainActivity ругается на getTabHost(что-то типо нельзя применить к не статичному методу)
Про ссылку нашёл вот это:
Код: Выделить всё
public void onClick (View v) {
Class <?> cls = null;
try {
cls = Class.forName("MainActivity.class");
} catch (ClassNotFoundException e) {
Log.e("ERROR-SET-CLASS", "класс не найден");
}
Method m = cls.getMethod("setTab", void.class);
m.invoke(, "tag2");
}
На счёт архитектуры приложения вы скорее всего правы, это первое моё приложение)
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
уже не удаляется
Последний раз редактировалось xr0m 05 май 2013, 15:06, всего редактировалось 1 раз.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Два активити, это, можно сказать, два разных окна. Данные между ними можно передавать, например, через Preferences.
Ты хочешь впихнуть активити, как параметр для другой аткивити? А заачем?
Если тебе не важен первый параметр, используй null
Ты хочешь впихнуть активити, как параметр для другой аткивити? А заачем?
Если тебе не важен первый параметр, используй null
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
не даёт использовать Null, сразу пишет, что ошибка
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Да нет, просто хочу переходить по вкладкам при нажатии кнопок Далее и Назадxr0m писал(а): Ты хочешь впихнуть активити, как параметр для другой аткивити? А заачем?
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Ничего не выйдет так как первая активити будет в состоянии pause когда вторая активити будет активная то ui элементы будут null и обратится к ним нельзя будет (в том числе и к TabHost). Так что повторюсь - нужно менять логику, если не знаете как то ставьте конкретную задачу и здесь её решим.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Теперь всё ясно. Ну в общем задача это по нажатии кнопок Далее и Назад переходить на другую вкладку. По сути понял, что можно сами кнопки расположить снизу на Main_activity.xml и тогда всё будет работать. Но в будущем хотел кнопки заменить свайпами влево/вправо, а вот это уже тогда не получится сделать? (Знаю что есть такой тип навигации, но он от API 11, а я делаю от 7)
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Создаешь в активите первом кнопку вперед, по клику вызываешь вторую.
Создаешь во-втором активити кнопку назад, по клику вызываешь первую активити.
Это по простому.
Создаешь во-втором активити кнопку назад, по клику вызываешь первую активити.
Это по простому.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
А разве при этом вкладки будут меняться? Мне нужно ещё и вкладки оставить, чтобы можно было на нужную перейти в любой момент
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
это ViewPager, и доступен он с 1,6 (если не ошибаюсь на счёт поддержки версии саппорт либы).igrok-vip писал(а):Теперь всё ясно. Ну в общем задача это по нажатии кнопок Далее и Назад переходить на другую вкладку. По сути понял, что можно сами кнопки расположить снизу на Main_activity.xml и тогда всё будет работать. Но в будущем хотел кнопки заменить свайпами влево/вправо, а вот это уже тогда не получится сделать? (Знаю что есть такой тип навигации, но он от API 11, а я делаю от 7)
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
О, спасибо большое. То что нужно, сори что мозги пудрил) Далеко не все возможности андроида ещё знаю)
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Здравствуйте.
Активно изучаю вкладки и пытаюсь на базе урока сделать так, чтобы вкладки были слева в столбик, перерыл много материалов, которые советуют, но повторить не могу(((. Вот лучшее из того, что получилось:
[syntax=xml]<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TabHost
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TabWidget
android:id="@android:id/tabs"
android:orientation="horizontal"
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TabWidget>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="100dp"
android:layout_height="wrap_content" >
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>
[/syntax]
[syntax=java]public class MainActivity extends TabActivity {
final String TABS_TAG_1 = "Tag 1";
final String TABS_TAG_2 = "Tag 2";
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// getTabWidget().setOrientation(LinearLayout.VERTICAL);
TabHost tabHost = getTabHost();
TabHost.TabSpec tabSpec;
tabSpec = tabHost.newTabSpec(TABS_TAG_1);
tabSpec.setContent(TabFactory);
tabSpec.setIndicator("Вкладка 1");
tabHost.addTab(tabSpec);
tabSpec = tabHost.newTabSpec(TABS_TAG_2);
tabSpec.setContent(TabFactory);
tabSpec.setIndicator("Вкладка 2");
tabHost.addTab(tabSpec);
}
TabHost.TabContentFactory TabFactory = new TabHost.TabContentFactory() {
@Override
public View createTabContent(String tag) {
if (tag == TABS_TAG_1) {
return getLayoutInflater().inflate(R.layout.tab, null);
} else if (tag == TABS_TAG_2) {
TextView tv = new TextView(MainActivity.this);
tv.setText("Это создано вручную");
return tv;
}
return null;
}
};
}[/syntax]
Активно изучаю вкладки и пытаюсь на базе урока сделать так, чтобы вкладки были слева в столбик, перерыл много материалов, которые советуют, но повторить не могу(((. Вот лучшее из того, что получилось:
[syntax=xml]<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TabHost
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TabWidget
android:id="@android:id/tabs"
android:orientation="horizontal"
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TabWidget>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="100dp"
android:layout_height="wrap_content" >
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>
[/syntax]
[syntax=java]public class MainActivity extends TabActivity {
final String TABS_TAG_1 = "Tag 1";
final String TABS_TAG_2 = "Tag 2";
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// getTabWidget().setOrientation(LinearLayout.VERTICAL);
TabHost tabHost = getTabHost();
TabHost.TabSpec tabSpec;
tabSpec = tabHost.newTabSpec(TABS_TAG_1);
tabSpec.setContent(TabFactory);
tabSpec.setIndicator("Вкладка 1");
tabHost.addTab(tabSpec);
tabSpec = tabHost.newTabSpec(TABS_TAG_2);
tabSpec.setContent(TabFactory);
tabSpec.setIndicator("Вкладка 2");
tabHost.addTab(tabSpec);
}
TabHost.TabContentFactory TabFactory = new TabHost.TabContentFactory() {
@Override
public View createTabContent(String tag) {
if (tag == TABS_TAG_1) {
return getLayoutInflater().inflate(R.layout.tab, null);
} else if (tag == TABS_TAG_2) {
TextView tv = new TextView(MainActivity.this);
tv.setText("Это создано вручную");
return tv;
}
return null;
}
};
}[/syntax]
- Вложения
-
- bestResult.JPG (33.21 КБ) 13445 просмотров
-
- Сообщения: 7
- Зарегистрирован: 28 июн 2013, 11:26
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Подскажите пожалуйста, как привязать базу данных и активити.
Мне нужно реализовать два табы.
На первом вывести список пользователей.
На втором форма с добавлением пользователя.
По примеру этого урока я разделил вкладки на отдельные активити.
Как расшарить базу между несколькими активити?
Где описывать класс DBHelper и где его вызывать?
Заранее спасибо!!!
Было бы неплохо вынести мой вопрос в отдельный урок)))
Мне нужно реализовать два табы.
На первом вывести список пользователей.
На втором форма с добавлением пользователя.
По примеру этого урока я разделил вкладки на отдельные активити.
Как расшарить базу между несколькими активити?
Где описывать класс DBHelper и где его вызывать?
Заранее спасибо!!!
Было бы неплохо вынести мой вопрос в отдельный урок)))
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Вообще-то все твои вопросы уже есть в уроках.
Класс в этом уроке, кстати, немного устарел.
И третье, обычно добавление чего-бы-то-нибыло в список осуществляется не в табах..
Класс в этом уроке, кстати, немного устарел.
И третье, обычно добавление чего-бы-то-нибыло в список осуществляется не в табах..
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
-
- Сообщения: 7
- Зарегистрирован: 28 июн 2013, 11:26
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Извините в каком уроке вы рассказываете о то как между несколькими активити юзать базу?
Я так понимаю что в каждом активити мне нужно создавать объект для работы с базой и при переходе с одной активити на второй этот объект удалят и заново создавать?
Я так понимаю что в каждом активити мне нужно создавать объект для работы с базой и при переходе с одной активити на второй этот объект удалят и заново создавать?
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
сделайте DBHelper синглтоном и юзайте где хотитеRomillionaire писал(а):Извините в каком уроке вы рассказываете о то как между несколькими активити юзать базу?
Я так понимаю что в каждом активити мне нужно создавать объект для работы с базой и при переходе с одной активити на второй этот объект удалят и заново создавать?
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
попробуй для начала повторить урок с созданием быза данных вообще и 1 активити. По сути нет такого понятия "расшарить базу данных для двух активити".Romillionaire писал(а):Извините в каком уроке вы рассказываете о то как между несколькими активити юзать базу?
Я так понимаю что в каждом активити мне нужно создавать объект для работы с базой и при переходе с одной активити на второй этот объект удалят и заново создавать?
Объект вы тоже вряд ли "удалите".
В вашей постановке задачи много противоречий. Надо с чего-нибудь начать.
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
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
если копнуть глубже то такое понятие можно сказать существует если между подписчиками и бд будет ресивер или контентпровайдерПо сути нет такого понятия "расшарить базу данных для двух активити".
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена