Fragment ImageAdapter Listview未显示(listview)

时间:2017-07-21 17:43:54

标签: android android-fragments

我想构建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;

        }

    }

}

0 个答案:

没有答案