Я пытаюсь загрузить фрагмент после ответа диалогового окна оповещения, но когда я пытаюсь загрузить logcat, вы увидите «IllegalStateException: Fragment не привязан к Activity». Обычно IllegalStateException возникает, когда вы пытаетесь выполнить работу после того, как фрагмент больше не привязан к Activity. но в моем случае все прекрасно, я не понимаю, почему фрагмент не привязан к активности.Как загрузить фрагмент с помощью AlertDialog?
это мой MainActivity:
с помощью этого класса я называю DilogCreate, который проходит DialogFragment.
public class MainActivity extends AppCompatActivity {
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn= (Button) findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new DilogCreate(view.getContext(),R.string.tilte,R.string.no,R.string.yes);
}
});
}
это мой DilogCreate класс:
на основе диалога ответа решить фрагмент может быть загружен или нет, если диалоговое окно ответа да я называю другое имя деятельности Second.java в рамках этого класса я пытаюсь загрузить фрагмент ,
public class DilogCreate extends DialogFragment {
AlertDialog alertDialog;
public DilogCreate(final Context context, int tilte, int no, int yes) {
AlertDialog.Builder mAlertDilog = new AlertDialog.Builder(context);
mAlertDilog.setNegativeButton(yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Intent intent = new Intent(context, second.class);
startActivity(intent);
}
});
alertDialog = mAlertDilog.create();
alertDialog.show();
}
}
это мой мой Second.java класс:
этот класс появляется из диалогового ответа и при этом классе я попытался загрузить фрагмент.
public class Second extends AppCompatActivity {
FragmentManager fragmentManager;
FragmentTransaction fragmentTransaction;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loadFragment);
fragmentManager=getSupportFragmentManager();
fragmentTransaction=fragmentManager.beginTransaction();
Myfragment myfragment=new Myfragment();
fragmentTransaction.replace(R.id.cont,myfragment);
fragmentTransaction.commit();
}
}
это MyFragment.java расширяет фрагмент:
public class Myfragment extends Fragment{
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.frag,container,false);
}
}
Logcat Статус:
java.lang.IllegalStateException: Fragment DilogCreate{8aea1d4} not attached to Activity
пожалуйста, помогите мне, ребята, я понятия не имею, почему приходит эта ошибка.
view.getContext() представляет собой контекст деятельности, так как такой же –
Там нет никакой гарантии, что контекст, используемого вашего зрения Activity, и я думаю, что вы хотите передать ссылку Activity здесь для перехода к строителю. – codemonger
Он понял. Кроме того, почему вы передаете строки в параметр int? – klutch