Я решил расширить свой класс MainActivity
до Fragment
, и теперь мое приложение аварийно завершает работу (даже не загружается - см. Трассировку стека ниже).Android-приложение вылетает, когда я конвертировал свою MainActivity в фрагмент
Это мой код:
public class MainActivity extends Fragment {
Button login;
EditText username;
EditText password;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View view = inflater.inflate(R.layout.activity_main, container, false);
loginButtonOnClick();
return view;
}
private void loginButtonOnClick(){
Button loginButtons = (Button) getView().findViewById(R.id.loginButton);
loginButtons.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Fragment userPage = new UserPage();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.mainGUI, userPage);
transaction.addToBackStack(null);
transaction.commit();
}
});
}
}
Это мой xml
файл:
Это трассировки стека:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{lukazs.newapps/lukazs.newapps.MainActivity}: java.lang.ClassCastException: lukazs.newapps.MainActivity cannot be cast to android.app.Activity
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
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)
Caused by: java.lang.ClassCastException: lukazs.newapps.MainActivity cannot be cast to android.app.Activity
at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
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)
Я должен используйте Здесь я испытываю серьезные трудности, я не могу использовать android.support.v4.app.Fragment
, так как я не могу назвать этот фрагмент из основной деятельности, поэтому мне нужно использовать android.app.Fragment
. Проблема в getFragmentManager
принадлежит android.support.v4.app.Fragment
:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View view = inflater.inflate(R.layout.dbusers, container, false);
viewPager = (ViewPager) getView().findViewById(R.id.pager);
viewPager.setAdapter(new TabsAdapter(getFragmentManager())); // getFragmentManager() can't be called.
}
Теперь я получаю сообщение об ошибке для 'getFragmentManager()', потому что я использую 'import android.app.Fragment;' Вы знаете, как разрешить этот –
использовать getFragmentManager() в вашей транзакции MainActivity для фрагмента, как я сделал здесь https://github.com/CandleCoder/FragmentWithJava/blob/master/app/src/main/java/com/magicsw/fragmentwithjava/MainActivity.java – CandleCoder
Пожалуйста, проверьте мои обновленные сообщения. Это код внизу –