0

Я пытаюсь запустить действие, которое находится в MaterielDialog, и этот находится во Фрагменте.Запустить действие из фрагмента

Вот мой фрагмент часть:

Intent i = new Intent(getActivity(), SubjectViewActivity_.class); 
i.putExtra("subject", projects.getFileurl()); 
startActivity(i); 

И в SubjectViewActivity:

@UiThread 
void setSubject(String LinkTo) { 
    Toast.makeText(getApplicationContext(), LinkTo, Toast.LENGTH_LONG).show(); 
    webview.getSettings().setJavaScriptEnabled(true); 
    webview.loadUrl(LinkTo); 
    setContentView(webview); 
} 

@AfterViews 
void init() { 
    Intent intent = getIntent(); 
    String url = intent.getExtras().getString("subject"); 
    setSubject(url); 
} 

Я получаю эту ошибку:

вызвано следующими причинами: java.lang.IllegalStateException: Заданный у ребенка уже есть родитель. Сначала вы должны вызвать removeView() родителя ребенка.

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

Поблагодарили

+0

Проблема в стартовой активности или во время загрузки второго действия? –

ответ

0

ли установить вы вид контента, прежде чем setContentView в void setSubject(String LinkTo) вызова? Если вы это сделаете, вам не нужно будет устанавливать его снова.

Похоже, у вас уже есть веб-представление в макете вашей деятельности.

+0

Я объявил webview в своем макете да .. –

+0

OH YEAH !!! Thx вы, мужчины !!! –

+0

Вы устанавливаете contentView перед setSubject? Как в onCreate? – Miro

1

Использовать обратный вызов. Внедрите интерфейс внутри фрагмента, такого как:

public interface OnChangeActivityListener{ 
    void changeActivity() 
} 

А затем в вашей деятельности реализуйте интерфейс. В рамках метода changeActivity() реализуйте свое творение нового намерения. Управление целями и деятельностью должно происходить на уровне активности, а не на уровне фрагмента. более

информация: http://developer.android.com/training/basics/fragments/communicating.html

 Смежные вопросы

  • Нет связанных вопросов^_^