簡體   English   中英

如何設置適配器以顯示ListFragment

[英]How to set Adapter to show ListFragment

如何設置Adapter以顯示ListFragment ,我嘗試設置此底部的代碼不起作用

ListFragment僅顯示一個值(index = 0),而其他index不顯示

ChatGroupMembersFragment.java

public class ChatGroupMembersFragment extends ListFragment {


    ArrayList<ChatApiFriendListGroupModel> chatApiFriendListGroupModelArrayList = new ArrayList<>();
    ArrayList<ChatApiFriendListGroupModel> chatApiFriendListGroupModels = new ArrayList<>();
    private AdapChatGroupMembers adapChatGroupMembers;
    public static ArrayList<ChatApiFriendListGroupModel> f =new ArrayList<>();

    public static ChatGroupMembersFragment newInstance(ChatApiFriendListGroupModel member) {


        f.add(member);



        return new ChatGroupMembersFragment();
    }



    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        Log.d("ChatGroupMembersFragmen","onViewCreated");
        ShareData.tx_home_titlebar.setText(getActivity().getResources().getString(R.string.tx_group_member));


        Member();
    }

    private void Member() {



        for (ChatApiFriendListGroupModel chatApiFriend: f){


            chatApiFriendListGroupModelArrayList.add(chatApiFriend);

        }



        adapChatGroupMembers = new AdapChatGroupMembers(getActivity(), chatApiFriendListGroupModelArrayList);
        setListAdapter(adapChatGroupMembers);
        adapChatGroupMembers.notifyDataSetChanged();
    }


}

和myadapter

 public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder viewHoder = new ViewHolder();
        LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        if (convertView==null){
            convertView =  layoutInflater.inflate(R.layout.fragment_chat_group_members,parent ,false);
            viewHoder.tx_name_member = (TextView) convertView.findViewById(R.id.tx_name_member);
            viewHoder.img_profile_member =(ImageView) convertView.findViewById(R.id.img_profile_member);

            viewHoder.tx_name_member.setTypeface(MainActivity.typeface_normal);
            convertView.setTag(viewHoder);
        }else {
            viewHoder = (ViewHolder) convertView.getTag();
        }

        viewHoder.tx_name_member.setText(chatApiFriendListGroupModelArrayList.get(position).getMembers().get(position).getFirstname());

        return convertView;
    }

並且它在列表視圖中僅顯示一個( get(0).getFirstName();

和My Data在FirstName中有6個值( get(0-6).getFirstName()

如何獲取所有值以顯示ListFragment

您的ArrayList似乎只有一個元素,您可以在此處添加:

f.add(member);

因此,以下調用僅在位置為0時返回元素:

chatApiFriendListGroupModelArrayList.get(position);

如果我正確理解並且getMembers()返回了正確的數據集,則可能需要執行以下操作:

viewHoder.tx_name_member.setText(chatApiFriendListGroupModelArrayList.get(0)
   .getMembers().get(position).getFirstname());

並相應地重寫getCount()

@Override
public int getCount() {
    return chatApiFriendListGroupModelArrayList.get(0)
        .getMembers().size();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM