您好,我正在尝试执行显示为片段的viewPager。这两个片段都包含一个recyclerView。我试图找到我的片段什么都没显示的原因。我试图做一个聊天应用程序,所以我想在recyclerView的每个位置显示用户的图像名称和其他字段
这是我的Viewpager ...
public class ChatPagerAdapter extends FragmentPagerAdapter {
int numberOfTabs;
public ChatPagerAdapter(FragmentManager fm, int NumOfTabs) {
super(fm);
this.numberOfTabs = NumOfTabs;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
ChatConUsuarioFragment tab1 = new ChatConUsuarioFragment();
return tab1;
case 1:
ChatCorporativoFragment tab2 = new ChatCorporativoFragment();
return tab2;
default:
return null;
}
}
@Override
public int getCount() {
return numberOfTabs;
}
}
这是ChatConUsuarioFragment。
public class ChatConUsuarioFragment extends Fragment {
private String title;
private int page;
String nombre;
RecyclerView recyclerViewChatUsuario;
List<ParseObject> listaDeChatsConUsuario;
ParseFile imagenRecibeMensaje;
public ChatConUsuarioFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment_chat_con_usuario, container, false);
queryChatClass();
recyclerViewChatUsuario=(RecyclerView)view.findViewById(R.id.recycler_chat_usuario);
listaDeChatsConUsuario=new ArrayList<>();
recyclerViewChatUsuario.addItemDecoration(new DividerItemDecoration(getContext(),
LinearLayoutManager.VERTICAL));
// Inflate the layout for this fragment
return view;
}
private void queryChatClass(){
ParseQuery<ParseObject> query=ParseQuery.getQuery("Chat");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
for (ParseObject obj:objects
) {
nombre=obj.getString("NombreRecibeMensaje");
listaDeChatsConUsuario.add(obj);
ListasChatAdapter adapter= new ListasChatAdapter(getContext(),listaDeChatsConUsuario);
recyclerViewChatUsuario.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}
});
}
}
这是适配器的代码...
public class ListasChatAdapter extends RecyclerView.Adapter<ListasChatAdapter.ViewHolder> {
Context context;
List<ParseObject> listaDeChatsUsuario;
public ListasChatAdapter(Context context, List<ParseObject> listaDeChatsUsuario) {
this.context = context;
this.listaDeChatsUsuario = listaDeChatsUsuario;
}
@NonNull
@Override
public ListasChatAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_chat, null);
return new ViewHolder(view);
}
public void setParseChatList(List<ParseObject> parseChatList) {
this.listaDeChatsUsuario = parseChatList;
}
@Override
public void onBindViewHolder(@NonNull final ListasChatAdapter.ViewHolder viewHolder, int position) {
ParseObject item = listaDeChatsUsuario.get(position);
viewHolder.nombreUsuario.setText(item.getString("NombreRecibeMensaje"));
ParseFile parseFile = item.getParseFile("AvatarRecibeMensaje");
if (parseFile != null) {
parseFile.getDataInBackground(new GetDataCallback() {
@Override
public void done(byte[] data, ParseException e) {
if (e == null) {
Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length);
if (bmp != null) {
viewHolder.imagenUsuario.setImageBitmap(bmp);
}
}
}
});
}
}
@Override
public int getItemCount() {
return this.listaDeChatsUsuario.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
CircleImageView imagenUsuario;
TextView hora;
TextView nombreUsuario;
TextView ultimoChat;
public ViewHolder(@NonNull View itemView) {
super(itemView);
imagenUsuario = (CircleImageView) itemView.findViewById(R.id.circleImageView3);
hora = (TextView) itemView.findViewById(R.id.hora_ultimo_chat);
nombreUsuario = (TextView) itemView.findViewById(R.id.chat_nombre_empresa);
ultimoChat = (TextView) itemView.findViewById(R.id.contenido_chat);
}
}
}
这是ViewPager片段...
public class ChatCorporativoyUsuarioContenedor extends Fragment {
@BindView(R.id.pager_chat)
ViewPager pagerChat;
Unbinder unbinder;
ChatPagerAdapter adapter;
public ChatCorporativoyUsuarioContenedor() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_chat_corporativoy_usuario_contenedor, container, false);
unbinder = ButterKnife.bind(this, view);
TabLayout tabLayout = (TabLayout) view.findViewById(R.id.chat_tabLayout);
tabLayout.addTab(tabLayout.newTab().setText("Chat Usuario"));
tabLayout.addTab(tabLayout.newTab().setText("Chat Corporativo"));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
adapter=new ChatPagerAdapter(getFragmentManager(),2);
pagerChat.setAdapter(adapter);
return view;
}
@Override
public void onDestroyView() {
super.onDestroyView();
unbinder.unbind();
}
}
请让我知道代码有什么问题,谢谢!