从片段向Arraylist对象添加数据

时间:2017-06-07 16:37:26

标签: android android-studio object android-fragments android-recyclerview

我需要一个指南,从我的片段的添加按钮添加数据,并在另一个片段中显示列表。内存中的所有内容

这是我的实体

public class Incidencia implements  Parcelable {



    private Integer id_incidencia;

    private String FechaRegistroIncidencia;

    private String NomRegistro;

    private  String FechaRegistro;;
    private String HoraRegistro;
    private int CodEstacion;
    private String NomEstacion;
    private int CodEquipo;
    private String NomEquipo;
    private String TipoFalla;
    private int AtoramientoMoneda;
    private int AtoramientoBillete;
    private String HoraLlegadaEstacion;
    private String Estado;
    private String Observaciones;
    private String FechaSolucion;
    private String HoraSolucion;



    public Integer getId_incidencia() {
        return id_incidencia;
    }

    public void setId_incidencia(Integer id_incidencia) {
        this.id_incidencia = id_incidencia;
    }

    public String getFechaRegistroIncidencia() {
        return FechaRegistroIncidencia;
    }

    public void setFechaRegistroIncidencia(String fechaRegistroIncidencia) {
        FechaRegistroIncidencia = fechaRegistroIncidencia;
    }

    public String getNomRegistro() {
        return NomRegistro;
    }

    public void setNomRegistro(String nomRegistro) {
        NomRegistro = nomRegistro;
    }

    public String getFechaRegistro() {
        return FechaRegistro;
    }

    public void setFechaRegistro(String fechaRegistro) {
        FechaRegistro = fechaRegistro;
    }

    public String getHoraRegistro() {
        return HoraRegistro;
    }

    public void setHoraRegistro(String horaRegistro) {
        HoraRegistro = horaRegistro;
    }

    public Integer getCodEstacion() {
        return CodEstacion;
    }

    public void setCodEstacion(Integer codEstacion) {
        CodEstacion = codEstacion;
    }

    public String getNomEstacion() {
        return NomEstacion;
    }

    public void setNomEstacion(String nomEstacion) {
        NomEstacion = nomEstacion;
    }

    public Integer getCodEquipo() {
        return CodEquipo;
    }

    public void setCodEquipo(Integer codEquipo) {
        CodEquipo = codEquipo;
    }

    public String getNomEquipo() {
        return NomEquipo;
    }

    public void setNomEquipo(String nomEquipo) {
        NomEquipo = nomEquipo;
    }

    public String getTipoFalla() {
        return TipoFalla;
    }

    public void setTipoFalla(String tipoFalla) {
        TipoFalla = tipoFalla;
    }

    public Integer getAtoramientoMoneda() {
        return AtoramientoMoneda;
    }

    public void setAtoramientoMoneda(Integer atoramientoMoneda) {
        AtoramientoMoneda = atoramientoMoneda;
    }

    public Integer getAtoramientoBillete() {
        return AtoramientoBillete;
    }

    public void setAtoramientoBillete(Integer atoramientoBillete) {
        AtoramientoBillete = atoramientoBillete;
    }

    public String getHoraLlegadaEstacion() {
        return HoraLlegadaEstacion;
    }

    public void setHoraLlegadaEstacion(String horaLlegadaEstacion) {
        HoraLlegadaEstacion = horaLlegadaEstacion;
    }

    public String getEstado() {
        return Estado;
    }

    public void setEstado(String estado) {
        Estado = estado;
    }

    public String getObservaciones() {
        return Observaciones;
    }

    public void setObservaciones(String observaciones) {
        Observaciones = observaciones;
    }

    public String getFechaSolucion() {
        return FechaSolucion;
    }

    public void setFechaSolucion(String fechaSolucion) {
        FechaSolucion = fechaSolucion;
    }

    public String getHoraSolucion() {
        return HoraSolucion;
    }

    public void setHoraSolucion(String horaSolucion) {
        HoraSolucion = horaSolucion;
    }





    public Incidencia(){}

    protected Incidencia(Parcel in){
        this.id_incidencia=in.readInt();;
        this.FechaRegistroIncidencia=in.readString();
        this.NomRegistro=in.readString();
        this.FechaRegistro=in.readString();
        this.HoraRegistro=in.readString();
        this.CodEstacion=in.readInt();
        this.NomEstacion=in.readString();
        this.CodEquipo=in.readInt();
        this.NomEquipo=in.readString();
        this.TipoFalla=in.readString();
        this.AtoramientoMoneda=in.readInt();
        this.AtoramientoBillete=in.readInt();
        this.HoraLlegadaEstacion=in.readString();
        this.Estado=in.readString();
        this.Observaciones=in.readString();
        this.FechaSolucion=in.readString();
        this.HoraSolucion=in.readString();
    }

    public static final Parcelable.Creator<Incidencia> CREATOR = new Parcelable.Creator<Incidencia>() {
        @Override
        public Incidencia createFromParcel(Parcel source) {
            return new Incidencia(source);
        }

        @Override
        public Incidencia[] newArray(int size) {
            return new Incidencia[size];
        }
    };



    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(this.FechaRegistro);
        dest.writeString(this.HoraRegistro);
        dest.writeString(this.TipoFalla);
        dest.writeString(this.FechaSolucion);
        dest.writeString(this.HoraSolucion);
        dest.writeString(this.NomEstacion);

    }

}

这是我的适配器

public class ListaIncidenciasTroncalAdapter extends RecyclerView.Adapter<ListaIncidenciasTroncalAdapter.ListaIncidenciasTroncalAdapterViewHolder>
         {

    private List<Incidencia> mLstIncidencia = new ArrayList<>();
    private OnItemClickListener listener;


    public void add(Incidencia incidencia){
        mLstIncidencia.add(incidencia);
        notifyItemInserted(mLstIncidencia.size()-1);
    }



    @Override
    public ListaIncidenciasTroncalAdapter.ListaIncidenciasTroncalAdapterViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.listaincidencias_item,parent,false);
        ListaIncidenciasTroncalAdapterViewHolder  mlistaIncidenciasTroncalAdapterViewHolder = new ListaIncidenciasTroncalAdapterViewHolder(view);
        return mlistaIncidenciasTroncalAdapterViewHolder;
    }

    @Override
    public void onBindViewHolder(ListaIncidenciasTroncalAdapter.ListaIncidenciasTroncalAdapterViewHolder holder, final int position) {

        final Incidencia incidencia= mLstIncidencia.get(position);
        holder.tv_FechaRegistro.setText("Registro: "+incidencia.getFechaRegistro()+" - "+incidencia.getHoraRegistro());
        holder.tv_Falla.setText(incidencia.getTipoFalla());
        holder.tv_Estacion.setText(incidencia.getNomEstacion());
        holder.tv_FechaSolucion.setText("Solucion: "+incidencia.getFechaSolucion()+" - "+incidencia.getHoraSolucion());


    }

    @Override
    public int getItemCount() {
        return mLstIncidencia.size();
    }


    static class ListaIncidenciasTroncalAdapterViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{

        private OnItemClickListener listener;
        TextView tv_FechaRegistro, tv_Falla, tv_Estacion,tv_FechaSolucion;
        LinearLayout linearLayout;
        public DetalleIncidencia detalleincidencia;

        public ListaIncidenciasTroncalAdapterViewHolder(View itemView) {
            super(itemView);
            tv_FechaRegistro= (TextView) itemView.findViewById(R.id.tvRegistro);
            tv_Falla= (TextView) itemView.findViewById(R.id.tvFalla);
            tv_Estacion= (TextView) itemView.findViewById(R.id.tvEstacion);
            tv_FechaSolucion= (TextView) itemView.findViewById(R.id.tvSolucion);
            final Context context = itemView.getContext();
           // detalleincidencia=(DetalleIncidencia) itemView.findViewById(R.id.)

            linearLayout=(LinearLayout) itemView.findViewById(R.id.linearItem);

        }

        @Override
        public void onClick(View v) {
            int pos = getAdapterPosition();

            }

        }

    public void setOnItemClickListener(OnItemClickListener listener){
        this.listener = listener;
    }

    public interface OnItemClickListener{
        public void onItemClick(String textName, String textViewBrief);
    }


    }

我想从这个片段中添加一个Incidencia对象

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            /**
             *Inflate ingresoincidenciastroncal and setup Views.
             */
                final View x =  inflater.inflate(R.layout.ingresoincidenciastroncal,null);
            context = x.getContext();




            //BOTON DE AGREGAR INCIDENCIA
            botonAgregaIncidencia=(Button) x.findViewById(R.id.btnAgregarIncidencia);
            botonAgregaIncidencia.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    Incidencia incidencia = new Incidencia();
                    incidencia.setFechaRegistro(mDateDisplay.getText().toString());
                    incidencia.setHoraSolucion(mTimeDisplay.getText().toString());




                    Toast toast = Toast.makeText(getContext(), "Registrado", Toast.LENGTH_SHORT);
                    toast.show();

                }
            });
return x;
}

我希望看到这个片段中的列表

public class ListaIncidenciasTroncalFragment extends Fragment {

    Context context;


    GestureDetector detector;


    private RecyclerView rvListaIncidencias;
    private ListaIncidenciasTroncalAdapter mlistaIncidenciasTroncalAdapter;

    public ListaIncidenciasTroncalFragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        final View x =  inflater.inflate(R.layout.listaincidenciastroncalfragment,null);
        context = x.getContext();

        detector = new GestureDetector(getActivity(), new RecyclerViewOnGestureListener());

        rvListaIncidencias=(RecyclerView)x.findViewById(R.id.rv_listaIncidenciasTroncal);
        rvListaIncidencias.setLayoutManager(new LinearLayoutManager(getContext()));
        mlistaIncidenciasTroncalAdapter = new ListaIncidenciasTroncalAdapter();
        rvListaIncidencias.setAdapter(mlistaIncidenciasTroncalAdapter);

  //I ADD THIS ONE FOR TEST AND ITS SUCCESFULL BUT I DONT KNOW HOW TO ADD IT BY THE BUTTON IN ANOTHER FRAGMENT
  Incidencia incidencia = new Incidencia();
        incidencia.setFechaRegistro("06/06/2017");
        incidencia.setHoraRegistro("10:30");
        incidencia.setTipoFalla("Atasco Moneda");
        incidencia.setNomEstacion("Javier Prado");
        incidencia.setFechaSolucion("07/06/2017");
        incidencia.setHoraSolucion("9:20");
        mlistaIncidenciasTroncalAdapter.add(incidencia);

return x;
}

1 个答案:

答案 0 :(得分:0)

在第一个片段中,定义一个将Incidencia对象传递给主机活动的界面。接口方法在按钮的[ empId, location vachar (30) ]

中调用
onClick()

然后,在您的活动中,实现此界面。重写的方法还将捆绑对象并传递给您的下一个片段作为片段参数:

public class YourFirstFragment extends Fragment {
    private OnButtonClickedListener mListener;

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        ...
        botonAgregaIncidencia.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ...
                mListener.onButtonClicked(incidencia);
            }
        });
    }

    public interface OnButtonClickedListener {
        void onButtonClicked(Incidencia incidencia);
    }
}

最后,在你的第二个片段中,提取像这样的包或参数,然后根据需要使用它:

public class YourActivity implements YourFirstFragment.OnButtonClicked {
    .
    .
    .
    @Override
    public void onButtonClicked(Incidencia incidencia){
        ListaIncidenciasTroncalFragment fragment = new ListaIncidenciasTroncalFragment();
        Bundle args = new Bundle();
        args.putParcelable("yourKey", incindencia);
        fragement.setArguments(args);
        getSupportFragmentManager().beginTransaction().replace(R.id.yourFragmentContainer, fragment).commit();
    }
}