Передача «событий» из содержимого дочерней вкладки Activity в родительскую TabActivity - PullRequest
0 голосов
/ 29 марта 2011

Я установил базовую TabActivity, очень похожую на туториал по вкладкам Google. Тем не менее, над TabWidget у меня есть TextView, который я хотел бы обновить и изменить текст после запуска определенных событий в каждой дочерней вкладке / дочернем действии (не обязательно при переключении между вкладками). Я понимаю, что не могу связать события между действиями, поэтому есть идеи, как этого добиться? Настроить службу, через которую обмениваются и действия TabActivity, и дочерние действия? Можно ли даже получить TextView здесь, в TabHost, чтобы даже перерисовать, когда дочернее действие активно?

My TabActivity раздувает следующий вид:

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical"
    android:layout_width="fill_parent" android:layout_height="fill_parent">
    <TextView android:id="@+id/textToUpdate" android:text="Some text to update" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>

    <TabWidget android:id="@android:id/tabs"
        android:layout_width="fill_parent" android:layout_height="wrap_content" />
    <FrameLayout android:id="@android:id/tabcontent"
        android:layout_width="fill_parent" android:layout_height="fill_parent" />
</LinearLayout>

1 Ответ

5 голосов
/ 08 мая 2011

После выполнения некоторых очень уродливых обходных путей, наконец, нашел очень простое решение.Из детской активности я добавил:

protected void updateParentText(){
    MyTabActivity parent = (MyTabActivity) this.getParent();
    TextView tv = (TextView) parent.findViewById(R.id.textToUpdate);
    tv.setText("New Text here");
}
...