SearchDialog не может быть показан в ActivityGroup - PullRequest
1 голос
/ 28 марта 2011

У меня есть две активности в рамках ActivityGroup, одна "ProvinceActivity" и другая "CityActivity".так что код:

public class CityManagerActivity extends ActivityGroup {
    View v1 = getLocalActivityManager().startActivity(
                "tab1",
                new Intent(this, ProvinceActivity.class)
                        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
                .getDecorView();
    replaceView(v1);
}

но когда у меня есть поиск по умолчанию, нажав клавишу поиска в «tab1» поиска, у меня есть ОШИБКА:

08-19 17:18:23.438: ERROR/AndroidRuntime(9078): Uncaught handler: thread main exiting due to uncaught exception 
08-19 17:18:23.458: ERROR/AndroidRuntime(9078): java.lang.IllegalArgumentException: no ident 
08-19 17:18:23.458: ERROR/AndroidRuntime(9078):     at android.app.Activity.ensureSearchManager(Activity.java:3499) 
08-19 17:18:23.458: ERROR/AndroidRuntime(9078):     at android.app.Activity.startSearch(Activity.java:2648) 
08-19 17:18:23.458: ERROR/AndroidRuntime(9078):     at android.app.Activity.onSearchRequested(Activity.java:2612) ...

второй поиск работает,подскажите как это сделать, плз ...

Ответы [ 2 ]

0 голосов
/ 21 октября 2011

Для других я думаю, что просто возвращая true, приложение показывает поведение, которого пользователь не ожидает, потому что оно должно показывать какой-то поиск, и возвращая true, оно переопределяется.

Статья http://www.app -solut.com / blog / 2011/10 / непредвиденное поведение при работе с вложенными табосами / показывает хороший способ решения этой проблемы в TabHost без изменения поведения по умолчанию.

0 голосов
/ 25 августа 2011

Есть такая же проблема.Я использую это, и это решает проблему.

@Override
public boolean onSearchRequested() {
    return true;
}
...