У меня есть активность с фрагментом A, добавленным к ней динамически. Теперь я транскрибирую фрагмент A в фрагмент B. И затем от фрагмента B до фрагмента C. Теперь у меня есть кнопка при нажатии, поместит вызов. Я не могу запустить намерение вызова, и в журнале ошибок указано незаконное государственное исключение. Никакой активности не найдено для обработки намерения. Означает ли это, что для вложенного фрагмента C нет активности? Как это может произойти (создание фрагмента без активности)? Также все фрагменты динамически создаются во время выполнения. Я пробовал это с использованием метода getfragmentmanager() и getchildfragmentmanager(). Я сталкиваюсь с этой ошибкой в обоих случаях. Любые предложения будут высоко ценится.Вложенный фрагмент - нет активности для обработки намерения
Вот мой фрагмент кода
Прикрепление фрагмента А к активности
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.container,FragmentA_.builder().build());
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
Замена фрагмента А с фрагментом B
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.container, FragmentB_.builder().build());
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
Замена Фрагмент B с фрагментом C
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.container, FragmentC_.builder().build());
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
Вызов Намерение
public void call(String contact){
Intent i=new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+contact));
getActivity().startActivity(i);
}
В моей Manifest.xml я добавил все разрешения для вызова.
Edit - 2 Фрагмент C код
@EFragment(R.layout.fragment_c)
public class FragmentC extends Fragment
{
@Click(R.id.call_button)
void call(){
call(phone_number);
}
public void call(String contact){
Intent i=new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+contact));
getActivity().startActivity(i);
}
}
Нет, я уверен, что я следил за приложением, как упоминалось в моем вопросе. Кроме того, я добавил только фрагмент A, оставлю все фрагменты, которые использовал метод replace. – Krishna
Можете ли вы опубликовать код, в котором вы инициируете намерение вызова, также я хочу взглянуть на ваши разрешения. – himanshu1496
Не могли бы вы поделиться каким-то кодом? –