我的应用程序在尝试替换片段时崩溃

时间:2017-11-14 21:47:44

标签: java android android-fragments

我正在使用android studio活动创建中的预设导航栏,当我尝试替换两个碎片时,应用程序崩溃了。我试图同时使用

  

import android.app.FragmentManager;

以及

  

import android.support.v4.app.FragmentManager;

我无法使用秒导入来定义要换出的片段,因此我无法使用该导入对其进行测试。

MainActivity Java Script

package acook.mobileassignment;

import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity{

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() {

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
            case R.id.navigation_home:
                setTitle("Music Main");
                FragmentManager fragManager = getFragmentManager();
                MusicMain fragment = new MusicMain();
                FragmentTransaction fragTransaction = fragManager.beginTransaction();
                fragTransaction.replace(R.id.mainContent, fragment);
                fragTransaction.commit();

                Context context = getApplicationContext();
                CharSequence text = "MusicPageCheck!";
                int duration = Toast.LENGTH_SHORT;

                Toast toast = Toast.makeText(context, text, duration);
                toast.show();
                return true;
            case R.id.navigation_dashboard:
                setTitle("Timer Set");
                FragmentManager fragManager2 = getFragmentManager();
                FragmentTransaction fragTransaction2 = fragManager2.beginTransaction();
                fragTransaction2.replace(R.id.mainContent, new TimerSet()).commit();
                return true;
            case R.id.navigation_notifications:
                setTitle("Favourites");
                FragmentManager fragManager3 = getFragmentManager();
                FragmentTransaction fragTransaction3 = fragManager3.beginTransaction();
                fragTransaction3.replace(R.id.mainContent, new Favourites()).commit();
                return true;
        }
        return false;
    }

};

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

    BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
    navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
}

}

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用getSupportFragmentManager() android.support.v4.app.FragmentManager,而不是getFragmentManager()?