我想构建Class Fragment它不起作用。但是,如果我使用ChatActivity(listview适配器)它的工作。我不知道问题,因为没有错误报告。程序没有错误,但Listview没有显示。谢谢你的帮助。
public class FragmentChat extends Fragment {
private ListView listView;
public ArrayAdapter adapter;
private List<Room> rooms = new ArrayList<>();
private DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference().getRoot().child("AllRoom");
private Room room;
public static FragmentChat newInstance() {
FragmentChat fragment = new FragmentChat();
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
setHasOptionsMenu(true);
getContext().getTheme();
View view = inflater.inflate(R.layout.fragment_fragment_chat, container, false);
return view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
listView = (ListView)view.findViewById(R.id.listView);
listView.setAdapter(new FragmentChat.ImageAdapter(this));
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Set<String> set = new HashSet<>();
Iterator i = dataSnapshot.getChildren().iterator();
dataSnapshot.getValue();
while (i.hasNext()){
DataSnapshot data = (DataSnapshot)i.next();
room = data.getValue(Room.class);
room.setKey(data.getKey());
rooms.add(room);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
public class ImageAdapter extends BaseAdapter {
private FragmentChat context;
public ImageAdapter(FragmentChat fragmentChat) {
context = fragmentChat;
}
public int getCount() {
// TODO Auto-generated method stub
return rooms.size();
}
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater inflater = (LayoutInflater) context
.getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = inflater.inflate(R.layout.chatroom, null);
}
// ColImgID
TextView txtPosition = (TextView) convertView.findViewById(R.id.ColImgDesc);
txtPosition.setPadding(10, 0, 0, 0);
txtPosition.setText(rooms.get(position).getRoomName());
ImageView btnChat = (ImageView) convertView.findViewById(R.id.ListUserRoom);
btnChat.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(getActivity(),ListUserRoom.class);
i.putExtra("key" , rooms.get(position).getKey());
startActivity(i);
}
});
return convertView;
}
}
}