- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了有关 Recyclerview 未连接适配器的问题。这是我的定位:
E/RecyclerView: No adapter attached; skipping layout
D/OpenGLRenderer: eglDestroySurface = 0x730c9a02d0
D/ViewRootImpl@8aa7e83[AddPostActivity]: Relayout returned: old=[0,0]
[1080,1920] new=[0,0][1080,1920] result=0x5 surface={valid=false 0}
changed=true
W/ClassMapper: No setter/field for YtyKXov13lReyirA8U4iritiUs6220-July-
201910: 39 found on class gurungdinesh.com.sisapen.ModelPost
W/ClassMapper: No setter/field for pdMZtSaxkzd5Uul592qwXKawnaI220-July-
201910: 40 found on class gurungdinesh.com.sisapen.ModelPost
D/FA: Connected to remote service
V/FA: Processing queued up service tasks: 4
I/zygote64: Do partial code cache collection, code=498KB, data=332KB
I/zygote64: After code cache collection, code=498KB, data=332KB
I/zygote64: Increasing code cache capacity to 2MB
D/ViewRootImpl@f8f3e40[MainActivity2]: MSG_RESIZED_REPORT: frame=Rect(0,
0 - 1080, 1920) ci=Rect(0, 72 - 0, 0) vi=Rect(0, 72 - 0, 0) or=1
MSG_WINDOW_FOCUS_CHANGED 1
这是我的适配器:
public class AdapterPost extends
RecyclerView.Adapter<AdapterPost.MyHolder> {
Context context;
List<ModelPost> postList;
public AdapterPost(Context context, List<ModelPost>postList) {
this.context = context;
this.postList = postList;
}
@NonNull
@Override
public MyHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int
viewType) {
//inflate layout
View view =
LayoutInflater.from(context).inflate(R.layout.activity_users_posts,
viewGroup, false);
return new MyHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyHolder myHolder, int i) {
//get data
String fullname = postList.get(i).getFullname();
String date = postList.get(i).getDate();
String time = postList.get(i).getTime();
String Title = postList.get(i).getTitle();
String Writing = postList.get(i).getWriting();
//set data
myHolder.uNameTv.setText(fullname);
myHolder.pTimeTv.setText(time);
myHolder.pDate.setText(date);
myHolder.pTitileTv.setText(Title);
myHolder.pWritingTv.setText(Writing);
}
@Override
public int getItemCount() {
return postList.size();
}
//view holder class
class MyHolder extends RecyclerView.ViewHolder
{
//views from users post
ImageButton moreBtn;
CircularImageView uPictureIv;
TextView uNameTv, pTimeTv, pTitileTv, pWritingTv, pLikesTv, pDate;
Button likebtn, commentBtn, shareBtn;
private MyHolder(@NonNull View itemView) {
super(itemView);
//init views
uPictureIv = itemView.findViewById(R.id.uPictureTv);
uNameTv = itemView.findViewById(R.id.uNameTv);
pTimeTv = itemView.findViewById(R.id.pTimeTv);
moreBtn = itemView.findViewById(R.id.moreBtn);
pDate = itemView.findViewById(R.id.pDateTv);
pTitileTv = itemView.findViewById(R.id.pTitleTv);
pWritingTv = itemView.findViewById(R.id.pWriting);
pLikesTv = itemView.findViewById(R.id.pLikesTv);
likebtn = itemView.findViewById(R.id.likeBtn);
commentBtn = itemView.findViewById(R.id.commentBtn);
shareBtn = itemView.findViewById(R.id.shareBtn);
}
这是我的 HomeFragment:
public class HomeFragment extends Fragment {
private FirebaseAuth mFirebase;
private DatabaseReference databaseReference;
private RecyclerView recyclerView;
private List<ModelPost> postList;
private AdapterPost adapterPost;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable
ViewGroup container, @Nullable Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.home_activity, container,
false);
//init
mFirebase = FirebaseAuth.getInstance();
databaseReference =
FirebaseDatabase.getInstance().getReference("posts");
recyclerView = view.findViewById(R.id.all_user_post_list);
LinearLayoutManager layoutManager = new
LinearLayoutManager(getActivity());
layoutManager.setStackFromEnd(true);
layoutManager.setReverseLayout(true);
recyclerView.setLayoutManager(layoutManager);
postList = new ArrayList<>();
loadPosts();
return view;
}
private void loadPosts() {
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
postList.clear();
for (DataSnapshot ds : dataSnapshot.getChildren()) {
ModelPost modelPost = ds.getValue(ModelPost.class);
postList.add(modelPost);
//adapter
adapterPost = new AdapterPost(getActivity(), postList);
//set adapter to RecyclerView
recyclerView.setAdapter(adapterPost);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
//in case of error
Toast.makeText(getActivity(), "" +
databaseError.getMessage(), Toast.LENGTH_SHORT).show();
}
});
我尝试了很多事情,但什么也没发生。
最佳答案
由于 Firebase 任务是异步的,因此在 onCreateView
方法中的 return view;
后调用 setAdapter
方法。这就是为什么它会给出错误未连接适配器
。您可以做的是在 onCreateView
方法中调用 setAdapter
,并在填充列表后,调用 notifyDataSetChanged() 。请参阅下面的代码
public class HomeFragment extends Fragment {
private FirebaseAuth mFirebase;
private DatabaseReference databaseReference;
private RecyclerView recyclerView;
private List<ModelPost> postList;
private AdapterPost adapterPost;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable
ViewGroup container, @Nullable Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.home_activity, container,
false);
//init
mFirebase = FirebaseAuth.getInstance();
databaseReference =
FirebaseDatabase.getInstance().getReference("posts");
recyclerView = view.findViewById(R.id.all_user_post_list);
LinearLayoutManager layoutManager = new
LinearLayoutManager(getActivity());
layoutManager.setStackFromEnd(true);
layoutManager.setReverseLayout(true);
recyclerView.setLayoutManager(layoutManager);
postList = new ArrayList<>();
// ----------- set the adapter here --------------------
adapterPost = new AdapterPost(getActivity(), postList);
recyclerView.setAdapter(adapterPost);
loadPosts();
return view;
}
private void loadPosts() {
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
postList.clear();
for (DataSnapshot ds : dataSnapshot.getChildren()) {
ModelPost modelPost = ds.getValue(ModelPost.class);
postList.add(modelPost);
}
// ----------- call notifyDataSetChanged --------------------
adapterPost.notifyDataSetChanged()
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
//in case of error
Toast.makeText(getActivity(), "" +
databaseError.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}
关于java - E/RecyclerView : No adapter attached; skipping layout D/OpenGLRenderer: eglDestroySurface = 0x730c9a02d0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57126847/
我正在尝试一个包含 ListView 的 Android 应用程序。在此 ListView 中,仅列出图像。 我想知道,虽然应用程序运行良好,但当我单击 ListView 中的项目时,有时会出现错误日
我的应用程序从远程服务器调用帖子,无论谁在我打开任何 Activity 时都有长文本, ListView 样式已经像边框半径等一样消失,并且我在 Eclipse 控制台上重复收到消息说 08-06 0
我有两个具有 TextureView 的 fragment 来显示相机预览或播放视频。 在使用应用程序一段时间后,玩弄屏幕,我在 logcat 中收到此错误 OpenGLRenderer﹕ GL_IN
有没有办法检测到 OpenGLRenderer 内存不足?我将大图像设置为可绘制到 ImageView 背景,并且在具有 FullHD 显示的设备上有时 ImageView 保持空白,我在 logca
我每秒钟都在调试,如何隐藏这些消息并保留我的调试日志? 11-17 13:20:01.885 18135-18135/ru.elron.app D/OpenGLRenderer: prepareDir
我正在开发一个 Android 应用程序 (Phonegap),每当我在插入的设备上进行测试时,由于 OpenGLRenderer prepareDirty 填充日志,我无法在日志中看到错误。这很烦人
当构造一个椭圆形的 vector 时,我在 LogCat 中收到这条警告消息: W/OpenGLRenderer: Points are too far apart 4.000000 我很想知道这到底
App 有一个 ViewPager,里面有几个 Fragment。 当用户滚动到页面末尾时,会出现这种 Android 渐变效果,表示没有更多页面(而不是 iOS 的弹跳效果)。 发生这种情况时,应用
我在 RelativeLayout 中有一个 TextView,我在运行时在其中设置了一个大文本。问题是关于我的 RelativeLayout 背景,它是一个带边框的圆形。它没有设置背景,在 Logc
我们的代码在 Canvas 上执行非常简单的操作(完全在 UI 线程中):绘制文本、翻译、保存、恢复。 偶尔,我们会得到这个(在运行 4.3 的 Nexus 4 上): W/Adreno200-ES2
每当我安装我的应用程序时,我都可以将数据库从 Assets 文件夹复制到 /data/data/packagename/databases/ .到此为止,应用程序工作得很好。 但 10 或 15 秒后
这是这个android fragment 的 View 下面是 float 按钮部分代码: 但是,Android studio 打印信息: W/OpenGLRenderer: Incor
我正在尝试制作电影列表,但它只显示带有应用程序名称的白屏。显然,我有一个与此非常相似的程序,并且运行得很好。这是我运行程序时得到的结果。 W/OpenGLRenderer: Failed to cho
我遇到了有关 Recyclerview 未连接适配器的问题。这是我的定位: E/RecyclerView: No adapter attached; skipping layout D/OpenGLR
我正在编写一个从 URL 加载图片并显示在 ImageView 中的应用程序。这是代码... public class MainActivity extends Activity { private
我是一名优秀的程序员,十分优秀!