Как сделать переход на фрагмент в spinner'e со строчки

Рейтинг: 0Ответов: 0Опубликовано: 05.03.2023

Нужно сделать переход со списка в спиннере по выбранному пункту переход на новый фрагмент. Вот мой код в котором я запутался, представление в голове есть, но что то идет не так.

Spinner spinner1, spinner2;
FragmentOne fragmentOne;
FragmentTwo fragmentTwo;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    fragmentOne = new FragmentOne();
    fragmentTwo= new FragmentTwo();

    spinner1 = findViewById(R.id.spinner1);
    String selected = spinner1.getSelectedItem().toString();
    Toast.makeText(getApplicationContext(), selected, Toast.LENGTH_SHORT).show();

    ArrayAdapter<String> adapter = new ArrayAdapter<>(
            MainActivity.this, R.layout.custom_spinner, getResources().getStringArray(R.array.List)

    );
    adapter.setDropDownViewResource(R.layout.customs_spinner_dropdown);
    spinner1.setAdapter(adapter);

    spinner2 = findViewById(R.id.spinner2);
    String selected1 = spinner2.getSelectedItem().toString();
    Toast.makeText(getApplicationContext(), selected1, Toast.LENGTH_SHORT).show();

    ArrayAdapter<String> adapter1 = new ArrayAdapter<>(
            MainActivity.this, R.layout.custom_spinner, getResources().getStringArray(R.array.ListTwo)
    );
    adapter1.setDropDownViewResource(R.layout.customs_spinner_dropdown);
    spinner2.setAdapter(adapter1);

    spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
            switch (i) {
                case 0:
                    selectFragment (fragmentOne);
                    break;
                case 1:
                    selectFragment (fragmentTwo);
                    break;
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });
}

private void selectFragment(Fragment fragment) {
    FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
    fragmentTransaction.replace(R.id.FrameLayout,fragment);
    fragmentTransaction.commit();
}

{

    VideoView videoPlayer;
    videoPlayer = findViewById(R.id.videoView3);
    Uri myVideoUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video);
    videoPlayer.setVideoURI(myVideoUri);
    MediaController mediaController = new MediaController(this);
    videoPlayer.setMediaController(mediaController);
    mediaController.setMediaPlayer(videoPlayer);


}
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.mydiplom, PID: 14829
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.mydiplom/com.example.mydiplom.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2679)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
        at android.content.ContextWrapper.getApplicationInfo(ContextWrapper.java:152)
        at android.view.ContextThemeWrapper.getTheme(ContextThemeWrapper.java:157)
        at android.content.Context.obtainStyledAttributes(Context.java:655)
        at androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:922)
        at androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:889)
        at androidx.appcompat.app.AppCompatDelegateImpl.findViewById(AppCompatDelegateImpl.java:691)
        at androidx.appcompat.app.AppCompatActivity.findViewById(AppCompatActivity.java:264)
        at com.example.mydiplom.MainActivity.<init>(MainActivity.java:86)
        at java.lang.Class.newInstance(Native Method)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1174)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2669)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) 
        at android.app.ActivityThread.-wrap11(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6494) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 

Ответы

Ответов пока нет.