Представление не отображается снова на других активностях - PullRequest
0 голосов
/ 09 марта 2012

Я сделал вид, который назван как меню. Я сделал это синглтон. это конструктор:

private Menu(Activity cx) {
    super(cx);
    this.context = cx;
    // something = AsyncTaskGetAllStreams.numberOfStreams;
    LayoutInflater li = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    li.inflate(R.layout.menu, this, true);
    setActivity(cx);
    initUI();
    initUI(MyStreamsActivity.streamsJoinedByUser2.length);
    assignVal();
}  

Проблема, с которой я сталкиваюсь, состоит в том, что, как только действие этого макета установлено, оно показывает это действие, а на любом другом говорит мне это в LogCat:

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
Для справки: его трассировка стека начинается с onClick() моей кнопки. это код, который я обрабатываю в onClick()

Intent intent = new Intent(activity, MyPostActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
activity.startActivity(intent);

Почему это происходит? что должно быть сделано?

1 Ответ

0 голосов
/ 09 марта 2012

Я думаю, что использование шаблона одноэлементного дизайна здесь не правильно. Это также то, что вызывает вашу проблему. Представление может иметь только одного родителя, и в приведенном выше примере вы надуваете свое представление на родителя, поэтому вы не сможете сделать это снова, пока не удалите его из текущего родителя.

Использование синглтона в этом случае нарушает гибкость платформы Android. Не боритесь с SDK, пусть он работает на вас.

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