Переход по кнопке из одного активити во фрагмент другого активити. Как реализовать?
Есть два активити. В первом активити есть fragment1 и fragment2. В fragment1 есть кнопка, запускающая второе активити, а в нем есть кнопка, при нажатии на которую должно открываться fragment2 из первого активити. Как надо написать onClick кнопки во втором активити, чтобы открылся fragment2 из первого?
Возможно я не верно понял, но я бы сделал так:
1. Запускаешь вторую активити через startActivityForResult, при клике на кнопку (делаешь callback с фрагмента на активити)
2. Во второй активити при клике суешь какую-то мета информацию и уничтожаешь активити
3. В первой активити перехватываешь информацию в onActivityResult и на ее основе добавляешь второй фрагмент
А есть варианты на счет этого? Что нужно изменить в onClick кнопки второго активити? Пишет, что данный фрагмент не связан с контейнером первого активити.
@Override
public void onClick(View v) {
Fragment someFragment = new ProfileFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.content_frame, someFragment ); // give your fragment container id in first parameter
transaction.addToBackStack(null); // if written, this transaction will be added to backstack
transaction.commit();
}
Process: com.example.asus.testapp147, PID: 29538
java.lang.IllegalArgumentException: No view found for id 0x7f080058 (com.example.asus.testapp147:id/content_frame) for fragment ProfileFragment{900146 #0 id=0x7f080058}
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1413)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1740)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1809)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:799)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2580)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2367)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2322)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2229)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:700)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6809)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)