看一下是图片路径的问题了吗?还是说图片的限制
https://github.com/lgd8981289/IMoocMusic
import androidx.recyclerview.widget.DividerItemDecoration; 看下有没有这个引入
调用构造方法时
GridSpaceItemDecoration
会执行getRecyclerViewOffsets方法。
我的版本比你还高,直接写也报错,用个注释就好了
package com.example.imoocmusic; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; public class ListAdapter extends RecyclerView.Adapter <RecyclerView.ViewHolder>{ private Context mContext; public ListAdapter(Context context){ mContext=context; } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return new ViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_music_list,parent,false)); } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { } @Override public int getItemCount() { return 8; } class ViewHolder extends RecyclerView.ViewHolder{ public ViewHolder(@NonNull View itemView) { super(itemView); } } }
rvList = fd(R.id.rv_list); LinearLayoutManager manager = new LinearLayoutManager(this){ @Override public boolean canScrollVertically() { return false; } }; rvList.setLayoutManager(manager); listAdapter = new MusicListAdapter(this); rvList.setAdapter(listAdapter);
这样就可以了
你再确定一下代码和老师是否一样,我之前少写了个m导致mediaplay疯狂报错
由于我们的onCreateViewHolder方法是IDE自行生成的,里面的ViewGroup类型的参数为parent, 所以这里viewGroup改成parent就好了。
感觉像是网络问题
我也遇到了和你一样的问题。一开始敲的时候没有任何提示(自动补全),我是在github上复制人家的使用例子粘贴上去的。然后按照课程改成和老师一模一样的。我运行一遍app以后把这段代码注释,再次敲,就有自动补全 能在XML中使用了。可能是android studio没及时加载过来,你运行一遍APP或者重启一下Android Studio就可以了
你是用谷歌搜出来的图片吗?我用谷歌搜出来的无法加载,但是百度的就可以
解决了吗 xdm
没有找到实体类的感觉
老哥是你代码写错了啊,应该是
if (mediaPlayHelp.getPath() != null && mediaPlayHelp.getPath().equals(path)) { mediaPlayHelp.start(); }
而不是
if (mMediaPlayerHelper != null && mMediaPlayerHelper.getPath().equals( path )){ mMediaPlayerHelper.start(); }e
遇到了同样的问题。。。。
可能是网络权限申请的问题,这个上一节视频下面的问答都回答的很全面,你可以去看看;
还有可能就是你用的是android studio自带的模拟器,自带的好像连不了网(我的就是这样,不知道为什么),可以换一个自己下载的模拟器试试。
重新导入依赖
JAVA中boolean对象有默认值为false
可以参考本系列(一)课程
哪一部分看不懂啊,如果最基本的语法不知道的话,建议还是先学一下Java入个门
在MainGridRvAdapter类中的onBindViewHolder方法中添加
holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(mContext, AlbumListActivity.class); mContext.startActivity(intent); } });
上面的代码就是为RecyclerView中的每个ItemView添加了点击事件。点击跳转到专辑页面。
手动导入吧
你是完全按照老师代码么?
新版本的recyclerview引用名是
androidx.recyclerview.widget.RecyclerView
你检查下你的activity_main.xml
你对比下我的 import android.graphics.Rect; import android.support.annotation.NonNull; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.LinearLayout; public class GridSpaceltemDecoration extends RecyclerView.ItemDecoration { private int mSpace; public GridSpaceltemDecoration(int space,RecyclerView parent) { mSpace=space; getRecyclerViewOffsets(parent); } /** * * @param outRect Item的矩形边界 * @param view ItemView * @param parent RecyclerView * @param state RecyclerView的状态 */ @Override public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { super.getItemOffsets(outRect, view, parent, state); outRect.left=mSpace; } private void getRecyclerViewOffsets(RecyclerView parent) { // View margin, // margin 为正,则View 会距离边界产生一个距离 // margin 为负,则View 会超出边界产生一个距离 LinearLayout.LayoutParams layoutParams=(LinearLayout.LayoutParams)parent.getLayoutParams(); layoutParams.leftMargin=-mSpace; parent.setLayoutParams(layoutParams); } }
你说的是MediaPlayerHelp类的setOnMeidaPlayerHelperListener方法吗?这个方法是为MediaPlayerHelp对象设置一个监听器,用于监听当前播放器的播放状态。