Как создать динамические вкладки из другого действия - PullRequest
1 голос
/ 29 января 2012

У меня есть метод в Test1Activity, который создает вкладки внутри TabHost, но если я хочу, чтобы Test2Activity вызывал метод, и мне нужно установить метод newTab на статический, я не могу использовать Intent, поскольку он использует «this»установить класс.

public class Test1Activity extends TabActivity {
    public static void newTab(String tabIdentifier) {
        TabHost.TabSpec spec;  // Reusable TabSpec for each tab
        Intent intent = new Intent().setClass(this, ChatActivity.class);
        spec = Test1Activity.tabHost.newTabSpec(tabIdentifier).setIndicator(tabIdentifier, null).setContent(intent);
        tabHost.addTab(spec);
        modifyTabSize();
    }
}

public class Test1Activity extends TabActivity {
    Test1Activity.newTab("Joe");
}

Как это исправить, чтобы он работал правильно?

Ответы [ 2 ]

1 голос
/ 29 января 2012

Есть несколько приемов использования статического Context. Иногда я делал статический контекст и инициализировал его в onCreate. Например:

public class Example extends Activity {
    public static Context context;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        context = this;
    }
}

Затем, когда вы создаете новый Intent объект, используйте context вместо this.

0 голосов
/ 29 января 2012

Зачем это делать?Вам следует рассмотреть возможность использования комбинации сервис / широковещательный прием, чтобы активность могла обновляться.Активность к активности может быть выполнена, если вы передаете информацию ПРЯМО .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...