2015-07-27 3 views
1

Я получаю IllegalStateException: активность была разрушена в ft.commit()IllegalStateException: активность была разрушена

Я отправил соответствующий код и указал на line.I ошибки не знают, что вызывает ошибку.

StackTrace:

07-27 02:01:31.776 15571-15571/com.ms.ha E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    java.lang.IllegalStateException: Activity has been destroyed 
      at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1397) 
      at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:636) 
      at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:615) 
      at com.ms.ha.activity.MainActivity.articleSelected1(MainActivity.java:248) 
      at com.ms.ha.activity.GridActivity3.onClick(GridActivity3.java:98) 
      at android.view.View.performClick(View.java:4240) 
      at android.view.View$PerformClick.run(View.java:17721) 
      at android.os.Handler.handleCallback(Handler.java:730) 
      at android.os.Handler.dispatchMessage(Handler.java:92) 
      at android.os.Looper.loop(Looper.java:137) 
      at android.app.ActivityThread.main(ActivityThread.java:5103) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:525) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
      at dalvik.system.NativeStart.main(Native Method) 

мне нужно двигаться DetailsFragment учащемуся OnClick кнопки в GridActivity.Thats, почему я использую экземпляр mainActivity.

GridActivity3.java:

public class GridActivity3 extends FragmentActivity implements OnClickListener { 

    ....... 
    ....... 
    @Override 
    public void onClick(View v) { 

     switch (v.getId()) { 

     case R.id.btn_home: 

     MainActivity main= new MainActivity(); 

     main.articleSelected1(6); 


     break; 

     } 
     } 
    } 

MainActivity.java:

public class MainActivity extends ActionBarActivity implements OnTabChangeListener,ArticleSelectedListener1 { 


@Override 
    public void onArticleSelected1(int position) 
    { 
     articleSelected1(position); 

    } 

    public void articleSelected1(int position) 
    { 
if(position==6) 
     { 
      //  action_bar_hometext.setText(content); 
      FragmentManager manager = getSupportFragmentManager(); 
      FragmentTransaction ft = manager.beginTransaction(); 
      DetailsFragment newFragment = new DetailsFragment(); 
      ft.replace(R.id.realtabcontent, newFragment); 
      ft.addToBackStack(null); 
      ft.commit(); ----> 248th line 

     } 
     } 

Я не знаю, как решить эту проблему error.Anyone может помочь мне с this.Thank вас ,

+0

Вы можете взглянуть на: http://stackoverflow.com/questions/ 25185950/java-lang-illegalstateexception-activity-has-been-destroy – Bajji

+0

@Ashwin все еще получает ту же ошибку после добавления этого onDetach в класс Fragment. – Steve

+0

Вы не можете добавить фрагмент, используя действие, которое было уничтожено. Ваша текущая деятельность - GridActivity3.Вы должны попробовать в этом. – Sar

ответ

3

Ваша проблема заключается в GridActivity3

 MainActivity main= new MainActivity(); 

    main.articleSelected1(6); 

класс активности не должен быть использован как это. Вы не должны создавать свой собственный экземпляр Activity, просто позвольте Android создавать и поддерживать его.
Если вы хотите позвонить articleSelected1(6);, поместите некоторые данные в Intent, затем верните его, чтобы зарегистрироваться в MainActivity, затем позвоните.
UPDATE Попробуйте это:
1. В OnClick GridActivity
Intent startMain = new Intent(this, MainActivity.class); startMain.putExtra("position", 6); startActivity(startMain);
2. в onCreated из MainAcitivty
int pos = getIntent().getIntExtra("position", 0); articleSelected1(pos);

+0

Мне нужно переместить DetailsFragment class onClick button в GridActivity. – Steve

+0

@ User11 Я обновляю ответ. Пожалуйста, проверьте его, если вы все еще не знаете, как передавать данные в MainActivity. – Minhtdh

+0

Очень благодарю вас за помощь. Работая хорошо. Вы сохранили мой день. – Steve

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