Как инициализирование AppCompatActivity с Fragment

У меня есть 2 класса, которые они увеличивают Fragment и AppCompatActivity, и моя проблема состоит в том, что с класса Fragment я хочу инициализировать AppCompatActivity и попробованный инициализировать activity посредством кнопки следующей формы

btnAddRes.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            System.out.println("Funciona");//lo use para verificar que estuviera entrando al clickListener
            Intent intent=new Intent(getActivity(), ActivityRegistra.class);
            startActivity(detail);
        }
    });

но мое приложение закрывается в момент хотения перейти с activity из fragment

0
задан 01.11.2019, 11:53
1 ответ

Чтобы открывать активность изначально tenes, чем объявлять ее c¦mo default и launcher activity в твоем manifest. Эта активность может открывать Фрагмент. Если tenes 2-ая Активность, что querés открываться с фрагмента ты обрезал делать это формой, что tenés в твоем onClickListener. Tené в счете, что вся активность должна быть объявленной в твоем manifest.

manifest:

 <application...>
    <activity
        android:name="com.example.myproject.view.activity.MainActivity">
        <intent-filter android:label="@string/app_name">
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity
        android:name="com.example.myproject.view.activity.ActivityRegistra">
        ...
    </activity>
</aplication>

MainActivity.java

@Override 
public void onCreate(Bundle savedInstanceState) {
    Fragment newFragment = new MyFragment();
    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

    transaction.replace(R.id.fragment_container, newFragment);
    transaction.addToBackStack(null);

    transaction.commit();
}

MyFragment.java

btnAddRes.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View view) {
         Intent intent=new Intent(getActivity(), ActivityRegistra.class);
         startActivity(intent);
     }
});

Eso deber¦, - чтобы функционировать. Я рекомендую тебе también исследовать Kotlin, у него есть формы mÃ: s простые, того, чтобы работать между фрагментами и активностью, в моем opini¦n это язык mÃ: s простой изучения и много mÃ: s могущественный, что Java. También investigÃ: на Navigation и JetPack на librer¦-эксперте androidX оставшаяся часть может говорить себе, что estÃ: оставаясь устаревшим.

0
ответ дан 01.12.2019, 14:41
  • 1
    Привет ¿ потому что ты комментируешь, что он считает концепцию допустившей ошибку?, в Вашем có я говорю, что он появляется, что он открывает Activity используя с фрагмента Activity, который это содержит. –  Jorgesys♦ 01.11.2019, 17:02
  • 2
    Tené s razó n, я quedé во времени с концепцией startActivity có mo часть Context. В androidx startActivity уже s найди tambié n внутри Fragment, хотя с restricció n, что Фрагмент esté я присоединяю в Активность. Así что té cnicamente мой ответ сегодня está подкованная уже я обновляю ее. –  alexm 01.11.2019, 19:40