显示在另一个片段上的列表视图



我正在使用内部带有滑动面板的视图寻呼器,因此当我的面板展开时,它会创建用户请求并实例化查看者以在列表视图中显示它们,问题是它们被实例化在他们想要的任何地方,我如何知道它应该在哪个片段中实例化。

这是我的代码

@Override
public void onPanelAnchored(View panel) {
    final View cView = panel;
    EndpointInterface Service = ServiceAuthGenerator.createService(EndpointInterface.class);
    currentID = sharedpreferences.getInt("CURRENTID", 0);
    Call<List<Ride>> call = Service.getPassengers(currentRide);
    call.enqueue(new Callback<List<Ride>>() {
        @Override
        public void onResponse(Response<List<Ride>> response, Retrofit retrofit) {
            if (response.isSuccess() && !response.body().isEmpty()) {
                dialogx.dismiss();
                ArrayList<String> myUsersName = new ArrayList<>();
                ArrayList<String> myUsersLastName = new ArrayList<>();
                ArrayList<String> myUsersMapDirection = new ArrayList<>();
                ArrayList<Integer> myUsersID = new ArrayList<>();
                ArrayList<Boolean> myUsersRole = new ArrayList<>();
                for (int i = 0; i < response.body().size(); i++) {
                    myUsersRole.add(response.body().get(i).getRole());
                    myUsersName.add(response.body().get(i).getUser().getFirst_name());
                    myUsersLastName.add(response.body().get(i).getUser().getLast_name());
                    myUsersMapDirection.add(getAdress(new LatLng(response.body().get(i).getOrigin_lat(), response.body().get(i).getOrigin_lng())));
                    myUsersID.add(response.body().get(i).getId());
                    currentName = myUsersName.get(i) + " " + myUsersLastName.get(i);
                    mMap.addMarker(new MarkerOptions().snippet(getAdress(new LatLng(response.body().get(Integer.valueOf(i)).getOrigin_lat(), response.body().get(Integer.valueOf(i)).getOrigin_lng()))).position(new LatLng(response.body().get(Integer.valueOf(i)).getOrigin_lat(), response.body().get(Integer.valueOf(i)).getOrigin_lng())).title(response.body().get(Integer.valueOf(i)).getUser().getFirst_name()).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA)));
                }
                ListAdapter userAdapter = new CustomAdapterRequest(MainMenu.this, myUsersName, myUsersLastName, myUsersMapDirection, myUsersID, myUsersRole, currentRide);
                ListView userListView = (ListView) cView.findViewById(R.id.listViewUserRequest);
                userListView.setAdapter(userAdapter);
            }
        }

        @Override
        public void onFailure(Throwable t) {
            Toast.makeText(getApplicationContext(), "no", Toast.LENGTH_SHORT).show();
        }
    });
}    

另外,这是我的适配器代码:

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    View row = convertView;
    myViewHolder holder = null;
    if (row == null) {
        LayoutInflater customInflater = (LayoutInflater) contexto.getSystemService(contexto.LAYOUT_INFLATER_SERVICE);
        row = customInflater.inflate(R.layout.custom_row_request, parent, false);
        holder = new myViewHolder(row);
        row.setTag(holder);
    } else {
        holder = (myViewHolder) row.getTag();
    }
    String singleNameItem = itemName.get(position);
    String singleLastNameItem = itemLastName.get(position);
    String singleDir = itemDirection.get(position);
    Integer singleID = itemIDs.get(position);
    Boolean singleRole = itemRoles.get(position);
    holder.tv_name.setText(singleNameItem + " " + singleLastNameItem);
    holder.tv_Direction.setText(singleDir);
    holder.im_profilepic.setImageResource(R.mipmap.profile_photo3);
    return row;
} 

还有我的持有人类

class myViewHolder {
    TextView tv_name;
    TextView tv_Direction;
    ImageView im_profilepic;
    myViewHolder(View v) {
        tv_name = (TextView) v.findViewById(R.id.nameText);
        tv_Direction = (TextView) v.findViewById(R.id.originText);
        im_profilepic = (ImageView) v.findViewById(R.id.ivImage);
    }
}

这是片段类

public class fragment1 extends Fragment {
    public fragment1() {
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        if (container == null) {
            return null;
        }
        return (CardView) inflater.inflate(R.layout.layout1, container, false);
    }
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
    }
    public void setTextDestination(String origin, String Destination, Long Date, String estimatedTime, boolean singleRole) {
        TextView tv_Destination = (TextView) getView().findViewById(R.id.TextDestination);
        TextView tv_origin = (TextView) getView().findViewById(R.id.TextOrigin);
        TextView tv_Date = (TextView) getView().findViewById(R.id.textDatePager);
        TextView tv_EstimatedTiem = (TextView) getView().findViewById(R.id.estimatedTimeRoute);
        ImageView iv_roleType = (ImageView) getView().findViewById(R.id.ImgView_roleTypeLayout1);
        tv_Destination.setText(Destination);
        tv_origin.setText(origin);
        iv_roleType.setImageResource(singleRole ? R.mipmap.steerorange3 : R.mipmap.handorange3);
        tv_EstimatedTiem.setText(estimatedTime);
        java.util.Date date = new Date(Date * 1000L);
        DateFormat format = new SimpleDateFormat("dd-MM-yyyy    hh:mm a");
        format.setTimeZone(TimeZone.getDefault());
        String formatted = format.format(date);
        tv_Date.setText(formatted);
    }
}

创建了一个 fragment1 列表,它是 mu fragment 类并将其添加到列表中,然后根据我拥有的列表上的项目数量是我获得的实例数,我的设置文本函数工作正常,但我不知道如何使用列表视图做到这一点!谢谢!:D

将添加列表视图的方法移动到实例化的片段中。

最新更新