Проблема с табуляцией в Android - PullRequest
0 голосов
/ 26 марта 2010

У меня возникли некоторые трудности при работе TabActivity. Вот реализация класса:

public class Profile extends TabActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    final TabHost tabHost = getTabHost();


    if (tabHost.isEnabled()) {
     Log.e("profile", "enabled");
    }


    tabHost.addTab(tabHost.newTabSpec(getString(R.string.friendReqs))
            .setIndicator("requests")
            .setContent(new Intent(this, FriendRequests.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));

    tabHost.addTab(tabHost.newTabSpec(getString(R.string.friends))
            .setIndicator("photo list")
            .setContent(new Intent(this, Settings.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));
    Log.e("profile", "add tabs");
    tabHost.invalidate();

}
}

Проблема в том, что я вызываю этот класс из своей основной деятельности (которая является MapActivity, если это имеет значение), и когда я это делаю, TabActivity не отображается. Он регистрирует щелчок в меню параметров и даже запускает намерение, но экран не меняется ... он просто остается на основном действии, и я вижу в журналах, что основное действие возобновляется. Я называю это так:

Intent p = new Intent(this,Profile.class);
   p.putExtra(DBAdapter.KEY_USERID,userid);
   startActivity(p);

Как я уже сказал ... ошибок нет (конечно, существуют классы, вызываемые из вкладок), просто нет действий. Я поместил некоторые команды журнала в функцию onCreate в табакативности (как вы видите), и все они записаны в журнал ... Я понятия не имею, что я делаю здесь неправильно. Любая помощь?

Ответы [ 3 ]

1 голос
/ 26 марта 2010

После нескольких попыток ...

Я установил первую вкладку в виде вместо намерения, и она показала вкладки ... я также мог выбрать вторую вкладку

Понял. Проблема была в том, что Activity вызывалось на 1-й вкладке. Он закрывался, если к нему не было передано никаких данных (связка). Спасибо еще раз за помощь.

0 голосов
/ 26 марта 2010

Удалить

tabHost.invalidate();

Также вы можете сбросить

Intent.FLAG_ACTIVITY_CLEAR_TOP

Я не вижу в этом никакой цели, так как вам все равно нужно видеть активность, когда вы нажимаете на вкладки.

0 голосов
/ 26 марта 2010

Я не вижу setContentView () в вашей активности, которая вам нужна.

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