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