Java 片段未显示在主屏幕中

Java 片段未显示在主屏幕中,java,android,android-fragments,kotlin,Java,Android,Android Fragments,Kotlin,我正在创建一个音乐播放器,我已经为此制作了一些片段。我使用的是显示设备中歌曲列表的主屏幕片段。但当我试图打开应用程序时,它会显示一个空白屏幕。我也将这个片段附加到我的回收器视图中的所有歌曲选项中,当我点击所有歌曲选项时,它显示给我空白屏幕。有什么问题,我错过了什么 这是我的MainActivity.kt文件和MainScreenFragment.kt文件的代码 MainActivity.kt 类MainActivity:AppCompatActivity(){ var导航抽屉列表:ArrayLi

我正在创建一个音乐播放器,我已经为此制作了一些片段。我使用的是显示设备中歌曲列表的主屏幕片段。但当我试图打开应用程序时,它会显示一个空白屏幕。我也将这个片段附加到我的回收器视图中的所有歌曲选项中,当我点击所有歌曲选项时,它显示给我空白屏幕。有什么问题,我错过了什么

这是我的MainActivity.kt文件和MainScreenFragment.kt文件的代码

MainActivity.kt

类MainActivity:AppCompatActivity(){

var导航抽屉列表:ArrayList=arrayListOf()
var images_for_navdrawer=intArrayOf(R.drawable.navigation_所有歌曲,R.drawable.navigation_收藏夹,
R.drawable.navigation_设置,R.drawable.navigation_设置)
对象静态化{
var抽屉布局:抽屉布局?=空
}
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val toolbar=findViewById(R.id.toolbar)
设置支持操作栏(工具栏)
MainActivity.Statified.drawerLayout=findViewById(R.id.drawer\U布局)
//抽屉布局=作为抽屉布局的findViewById(R.id.drawer\U布局)
导航抽屉列表。添加(“所有歌曲”)
导航抽屉列表。添加(“收藏夹”)
导航抽屉列表。添加(“设置”)
导航抽屉列表。添加(“关于我们”)
val toggle=ActionBarDrawerToggle(this@MainActivity,MainActivity.Statified.drawerLayout,工具栏,
R.string.navigation\u drawer\u open,R.string.navigation\u drawer\u close)
MainActivity.Statified.DroperLayout?.SetDroperListener(切换)
toggle.syncState()
val mainScreenFragment=mainScreenFragment()
这是一个.supportFragmentManager
.beginTransaction()
.add(R.id.details_fragment,mainScreenFragment,“mainScreenFragment”)
.commit()
//导航抽屉
var\u navigationAdapter=NavigationDrawerAdapter(navigationDrawerIconList,图像用于navigationdrawer,this@MainActivity)
_navigationAdapter.notifyDataSetChanged()
var navigation\u recycler\u view=findViewById(R.id.navigation\u recycler\u view)
navigation\u recycler\u view.layoutManager=LinearLayoutManager(this@MainActivity)
navigation\u recycler\u view.itemAnimator=DefaultItemAnimator()
navigation\u recycler\u view.adapter=\u navigationAdapter
导航\回收器\视图。setHasFixedSize(真)
//var navigation\u recycler\u view=findViewById(R.id.navigation\u recycler\u view)
//navigation\u recycler\u view.layoutManager=LinearLayoutManager(此)
//navigation\u recycler\u view.itemAnimator=DefaultItemAnimator()
}
覆盖有趣的onStart(){
super.onStart()
}
}

MainScreenFragment.kt

类MainScreenFragment:Fragment(){

var getSongList:ArrayList?=null
var nowPlayingBottomBar:RelativeLayout?=null
var playbausebutton:ImageView?=null
var songTitle:TextView?=null
变量visibleLayout:RelativeLayout?=null
变量noSongs:RelativeLayout?=null
var recyclerView:recyclerView?=null
var myActivity:活动?=null
var _mainScreenAdapter:mainScreenAdapter?=null
覆盖创建视图(充气机:布局充气机?,容器:视图组?,
savedInstanceState:捆绑?:查看{
val视图=充气机?充气(R.layout.content_main,容器,假)
设置选项菜单(真)
activity.title=“所有歌曲”
visibleLayout=view?.findViewById(R.id.visibleLayout)
noSongs=视图?.findViewById(R.id.noSongs)
nowPlayingBottomBar=view?.findViewById(R.id.HiddenBarMain屏幕)
songTitle=view?.findViewById(R.id.songTitleMainScreen)
playPauseButton=view?.findViewById(R.id.playPauseButton)
(现在将底部栏显示为RelativeLayout)。isClickable=false
recyclerView=view?.findViewById(R.id.contentMain)
if(getSongList==null){
getSongList=getSongsFromPhone()
if(getSongList==null){
visibleLayout?.visibility=View.INVISIBLE
noSongs?.visibility=View.VISIBLE
}
}否则{
Log.d(MainScreenFragment::class.java.simpleName,“数据已经存在”)
}
getSongList=getSongsFromPhone()
_mainScreenAdapter=mainScreenAdapter(获取歌曲列表作为ArrayList,活动)
val mLayoutManager=LinearLayoutManager(活动)
(recyclerView作为recyclerView)。layoutManager=mLayoutManager
(recyclerView作为recyclerView.itemAnimator=DefaultItemAnimator()
(recyclerView作为recyclerView)。适配器=\u mainScreenAdapter
返回视图
//为该碎片膨胀布局
/*val view=充气机!!.充气(R.LAYOU.FRAMENT\u主屏幕,容器,false)
visibleLayout=view?.findViewById(R.id.visibleLayout)
noSongs=视图?.findViewById(R.id.noSongs)
nowPlayingBottomBar=view?.findViewById(R.id.HiddenBarMain屏幕)
songTitle=view?.findViewById(R.id.songTitleMainScreen)
playPauseButton=view?.findViewById(R.id.playPauseButton)
recyclerView=view?.findViewById(R.id.contentMain)
返回视图*/
}
fun getSongsFromPhone():ArrayList{
var arrayList=arrayList()
var contentResolver=myActivity?.contentResolver
var songUri=MediaStore.Audio.Media.EXTERNAL\u CONTENT\u URI
var songCursor=contentResolver?.query(songUri,null,null,null)
if(songCursor!=null&&songCursor.moveToFirst()){
val songId=songCursor.getColumnIndex(MediaStore.Audio.Media.\u ID)
val songtile=songCursor.getColumnIndex((MediaStore.Audio.Media.TITLE))
val songastist=songCursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)
val songData=songCursor.getColumnIndex(MediaStore.Audio.Media.DATA)
val dateIndex=songCursor.getColumnIndex(添加了MediaStore.Audio.Media.DATE)
while(songCursor.moveToNext()){
var currentId=songCursor.getLong(songId)
var currentTitle=songCursor.getString(SongTitle)
瓦尔科伦
var navigationDrawerIconList : ArrayList<String> = arrayListOf()

var images_for_navdrawer = intArrayOf(R.drawable.navigation_allsongs, R.drawable.navigation_favorites,
        R.drawable.navigation_settings, R.drawable.navigation_aboutus)

object Statified{
    var drawerLayout : DrawerLayout?=null
}


override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)


    setContentView(R.layout.activity_main)
    val toolbar = findViewById<Toolbar>(R.id.toolbar)
    setSupportActionBar(toolbar)
   MainActivity.Statified.drawerLayout=findViewById(R.id.drawer_layout)

   // drawerLayout=findViewById<DrawerLayout>(R.id.drawer_layout) as DrawerLayout


    navigationDrawerIconList.add("All Songs")
    navigationDrawerIconList.add("Favorites")
    navigationDrawerIconList.add("Settings")
    navigationDrawerIconList.add("About Us")

    val toggle = ActionBarDrawerToggle(this@MainActivity, MainActivity.Statified.drawerLayout, toolbar,
            R.string.navigation_drawer_open, R.string.navigation_drawer_close)
    MainActivity.Statified.drawerLayout?.setDrawerListener(toggle)
    toggle.syncState()

    val mainScreenFragment = MainScreenFragment()
    this.supportFragmentManager
            .beginTransaction()
            .add(R.id.details_fragment, mainScreenFragment, "MainScreenFragment")
            .commit()




    //Navigation Drawer

    var _navigationAdapter = NavigationDrawerAdapter(navigationDrawerIconList, images_for_navdrawer, this@MainActivity)

    _navigationAdapter.notifyDataSetChanged()

    var navigation_recycler_view = findViewById<RecyclerView>(R.id.navigation_recycler_view)
    navigation_recycler_view.layoutManager = LinearLayoutManager(this@MainActivity)
    navigation_recycler_view.itemAnimator = DefaultItemAnimator()
    navigation_recycler_view.adapter = _navigationAdapter
    navigation_recycler_view.setHasFixedSize(true)


  //  var navigation_recycler_view = findViewById<RecyclerView>(R.id.navigation_recycler_view)
    //navigation_recycler_view.layoutManager = LinearLayoutManager(this)
    //navigation_recycler_view.itemAnimator = DefaultItemAnimator()

}

override fun onStart() {
    super.onStart()
}
var getSongList : ArrayList<Songs>? = null
var nowPlayingBottomBar: RelativeLayout?=null
var playPauseButton: ImageView?=null
var songTitle: TextView?=null
var visibleLayout: RelativeLayout?=null
var noSongs: RelativeLayout?=null
var recyclerView: RecyclerView?= null

var myActivity:Activity?=null

var _mainScreenAdapter : MainScreenAdapter?=null

override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?,
                          savedInstanceState: Bundle?): View? {

    val view = inflater?.inflate(R.layout.content_main, container, false)
    setHasOptionsMenu(true)
    activity.title = "All songs"
    visibleLayout = view?.findViewById<RelativeLayout>(R.id.visibleLayout)
    noSongs = view?.findViewById<RelativeLayout>(R.id.noSongs)
    nowPlayingBottomBar = view?.findViewById<RelativeLayout>(R.id.hiddenBarMainScreen)
    songTitle = view?.findViewById<TextView>(R.id.songTitleMainScreen)
    playPauseButton = view?.findViewById<ImageButton>(R.id.playpauseButton)
    (nowPlayingBottomBar as RelativeLayout).isClickable = false
    recyclerView = view?.findViewById<RecyclerView>(R.id.contentMain)

    if (getSongList == null) {
        getSongList = getSongsFromPhone()
        if (getSongList == null) {
            visibleLayout?.visibility = View.INVISIBLE
            noSongs?.visibility = View.VISIBLE
        }
    } else {
        Log.d(MainScreenFragment::class.java.simpleName, " Data already there")
    }



    getSongList = getSongsFromPhone()
    _mainScreenAdapter = MainScreenAdapter(getSongList as ArrayList<Songs>, activity)
    val mLayoutManager = LinearLayoutManager(activity)
    (recyclerView as RecyclerView).layoutManager = mLayoutManager
    (recyclerView as RecyclerView).itemAnimator = DefaultItemAnimator()
    (recyclerView as RecyclerView).adapter = _mainScreenAdapter
    return view



    // Inflate the layout for this fragment
   /* val view = inflater!!.inflate(R.layout.fragment_main_screen, container, false)
    visibleLayout = view?.findViewById<RelativeLayout>(R.id.visibleLayout)
    noSongs = view?.findViewById<RelativeLayout>(R.id.noSongs)
    nowPlayingBottomBar = view?.findViewById<RelativeLayout>(R.id.hiddenBarMainScreen)
    songTitle = view?.findViewById<TextView>(R.id.songTitleMainScreen)
    playPauseButton = view?.findViewById<ImageButton>(R.id.playPauseButton)
    recyclerView = view?.findViewById<RecyclerView>(R.id.contentMain)


    return view*/
}

fun getSongsFromPhone(): ArrayList<Songs>{
    var arrayList = ArrayList<Songs>()
    var contentResolver = myActivity?.contentResolver
    var songUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
    var songCursor = contentResolver?.query(songUri, null, null, null, null)
    if(songCursor!=null && songCursor.moveToFirst()){
        val songId = songCursor.getColumnIndex(MediaStore.Audio.Media._ID)
        val SongTitle = songCursor.getColumnIndex((MediaStore.Audio.Media.TITLE))
        val songArtist = songCursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)
        val songData = songCursor.getColumnIndex(MediaStore.Audio.Media.DATA)
        val dateIndex = songCursor.getColumnIndex(MediaStore.Audio.Media.DATE_ADDED)

        while(songCursor.moveToNext()){
            var currentId = songCursor.getLong(songId)
            var currentTitle = songCursor.getString(SongTitle)
            var currentArtist = songCursor.getString(songArtist)
            var currentData = songCursor.getString(songData)
            var currentDate = songCursor.getString(dateIndex)
        }
    }
    return arrayList
}

override fun onActivityCreated(savedInstanceState: Bundle?) {
    super.onActivityCreated(savedInstanceState)

    getSongList = getSongsFromPhone()
   _mainScreenAdapter = MainScreenAdapter(getSongList as ArrayList<Songs>, myActivity as Context)
    val mLayoutManager = LinearLayoutManager(myActivity)
    recyclerView?.layoutManager = mLayoutManager
    recyclerView?.itemAnimator = DefaultItemAnimator()
    recyclerView?.adapter = _mainScreenAdapter
}


override fun onAttach(context: Context?) {
    super.onAttach(context)
    myActivity = context as Activity
}

override fun onAttach(activity: Activity?) {
    super.onAttach(activity)
    myActivity = activity
}
  private void setUpRecycler() {
    noteAdapter = new NoteAdapter(noteModelList, v.getContext());
    layoutManager = new LinearLayoutManager(v.getContext(), LinearLayoutManager.VERTICAL, false);
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.setItemAnimator(new DefaultItemAnimator());
    recyclerView.addItemDecoration(new DividerItemDecoration(v.getContext(), DividerItemDecoration.VERTICAL));
    recyclerView.setAdapter(noteAdapter);
}
noteAdapter = new NoteAdapter(noteModelList, v.getContext());
        recyclerView.setAdapter(noteAdapter);
        noteAdapter.notifyDataSetChanged();