Como alimentar um ListView com AlertDialog

Olá, pessoal, tudo bem?

Estou já faz um tempo tentando descobrir o que está errado com o meu código vou mandar uma imagem de como gostaria de fazer o que estou tentando kkk.

Para isso eu fiz um Activity chamada AcomodacaoActivity.class (onde já inicia um ListView utlizando um RecyclerView com ListAdapter veja abaixo:

package br.com.neetosena.ireland2;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;

import java.util.List;

import br.com.neetosena.ireland2.AlertDialog.AlertDailogAcom;

public class AcomodacaoActivity extends AppCompatActivity {

private RecyclerView mRecyclerView;
private List<DadosAcom> mListAc;

private AlertDialog.Builder mAlertDialog;
private EditText alertNome;
private EditText alertData;
private EditText alertEnd;
private EditText alertFone;
private EditText alertValor;
private CheckBox alertVisitado;
private CheckBox alertAprovado;
private AlertDailogAcom alerta;




@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_acomodacao);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    toolbar.setTitle("Acomodação");
    setSupportActionBar(toolbar);


    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View mView) {
            alerta = new AlertDailogAcom(getBaseContext(), mListAc);
            alerta.callAlertDialog(AcomodacaoActivity.this, mView);

            //alerta.getmListAc(d);
            /*mAlertDialog = new AlertDialog.Builder(AcomodacaoActivity.this);
            mView = getLayoutInflater().inflate(R.layout.alert_dialog_acom, null);
            mAlertDialog.setView(mView);

            alertNome = (EditText) mView.findViewById(R.id.edt_alert_nome);
            alertData = (EditText) mView.findViewById(R.id.edt_alert_data);
            alertEnd = (EditText) mView.findViewById(R.id.edt_alert_end);
            alertFone = (EditText) mView.findViewById(R.id.edt_alert_fone);
            alertValor = (EditText) mView.findViewById(R.id.edt_alert_valor);
            alertVisitado = (CheckBox) mView.findViewById(R.id.chk_alert_visitado);
            alertAprovado = (CheckBox) mView.findViewById(R.id.chk_alert_aprovado);

            mAlertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    mListAc = getmListAc(1);
                    Toast.makeText(getBaseContext(), "Clicou OK!", Toast.LENGTH_LONG).show();

                }
            })
                    .setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            Toast.makeText(getBaseContext(), "Clicou Cancel!", Toast.LENGTH_LONG).show();
                        }
                    });


            AlertDialog alertDialog = mAlertDialog.create();
            alertDialog.show();*/

        }
    });

    mRecyclerView = (RecyclerView) findViewById(R.id.rv_list_acomodacao1);
    mRecyclerView.setHasFixedSize(true);
    mRecyclerView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
        @Override
        public void onScrollChange(View view, int i, int i1, int i2, int i3) {

        }
    });


    LinearLayoutManager llm = new LinearLayoutManager(getParent());
    llm.setOrientation(LinearLayoutManager.VERTICAL);
    mRecyclerView.setLayoutManager(llm);

    //mListAc = alerta.getmListAc(1);
    //mListAc = getmListAc(1);

    //mlista thiengo fez diferente mListAc((MainActivity)getActivity).getSetCarList(10);
    DadosAcomAdapter adapter = new DadosAcomAdapter(getBaseContext(), mListAc);
    mRecyclerView.setAdapter(adapter);

}

/*public List<DadosAcom> getmListAc (int qtd) {
    String[] nome = new String[] {"Sr. Willians"};
    String[] data = new String[] {"19/01/2018"};
    boolean[] check = new boolean[] {true};

    List<DadosAcom> listAux = new ArrayList<>();

    for (int i = 0; i < qtd; i++) {
        DadosAcom d = new DadosAcom(nome[i % nome.length], data[i % data.length], check[i % check.length]);
        listAux.add(d);
    }
    return (listAux);
}*/

/*public List<DadosAcom> getmListAc (int qtd) {
    DadosAcom d = new DadosAcom();
    String[] nome = new String[1];
    String[] data = new String[1];
    boolean[] check = new boolean[1];

    List<DadosAcom> listAux = new ArrayList<>();

    for(int i = 0; i < qtd; i++) {
        nome[i] = alertNome.getText().toString();
        d.setNome(nome[i]);

        data[i] = alertData.getText().toString();
        d.setData(data[i]);

        check[i] = alertVisitado.isClickable();
        d.setCheck(check[i]);

        listAux.add(d);
        System.out.println(listAux.toString());
    }
    return (listAux);


}*/

}
Criei um AlertDialog customizado:

package br.com.neetosena.ireland2.AlertDialog;

import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;

import java.util.ArrayList;
import java.util.List;

import br.com.neetosena.ireland2.DadosAcom;
import br.com.neetosena.ireland2.R;

/**

  • Created by Neto on 01/01/2018.
    */

public class AlertDailogAcom extends AppCompatActivity {

private AlertDialog.Builder mAlertDialog;
private EditText alertNome;
private EditText alertData;
private EditText alertEnd;
private EditText alertFone;
private EditText alertValor;
private CheckBox alertVisitado;
private CheckBox alertAprovado;

public List<DadosAcom> mListAc;
private LayoutInflater mLayoutInflater;
private DadosAcom d = new DadosAcom();


Intent i = new Intent();
Bundle b = new Bundle();


public AlertDailogAcom() {
}


public AlertDailogAcom(Context context, List<DadosAcom> mListAc) {
    this.mListAc = mListAc;
    mLayoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

}


public void callAlertDialog(Context context, View mView) {
    mAlertDialog = new AlertDialog.Builder(context);
    mView = mLayoutInflater.inflate(R.layout.alert_dialog_acom, null);
    mAlertDialog.setView(mView);

    alertNome = (EditText) mView.findViewById(R.id.edt_alert_nome);
    alertData = (EditText) mView.findViewById(R.id.edt_alert_data);
    alertEnd = (EditText) mView.findViewById(R.id.edt_alert_end);
    alertFone = (EditText) mView.findViewById(R.id.edt_alert_fone);
    alertValor = (EditText) mView.findViewById(R.id.edt_alert_valor);
    alertVisitado = (CheckBox) mView.findViewById(R.id.chk_alert_visitado);
    alertAprovado = (CheckBox) mView.findViewById(R.id.chk_alert_aprovado);

    mAlertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int position) {
            getmListAc(d);


        }
    })
            .setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {

                }
            });

    AlertDialog alerta = mAlertDialog.create();
    alerta.show();

}

public List<DadosAcom> getmListAc(DadosAcom d) {

    String[] nome = new String[3];
    String[] data = new String[3];
    boolean[] check = new boolean[3];
    String mensagem = "";
    mListAc = new ArrayList<>();
    if (alertNome == null && alertData == null && alertVisitado == null) {
        Log.i("LOG", "alertNome == null && alertData == null && alertVisitado == null");
        d.setNome("Campo vazio");
        mensagem = d.getNome();
        //mListAc.add(d);

    } else {

        for (int i = 0; i < nome.length; i++) {
            Log.i("LOG", "adicionando alertNome no array");
            nome[i] = alertNome.getText().toString();
            d.setNome(nome[i]);

            data[i] = alertData.getText().toString();
            d.setData(data[i]);

            check[i] = alertVisitado.isClickable();
            d.setCheck(check[i]);

        }

    }

    mListAc.add(d);
    return (mListAc);
}

}
O DadosAcomDapter:

package br.com.neetosena.ireland2;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.TextView;

import java.util.List;

import br.com.neetosena.ireland2.AlertDialog.AlertDailogAcom;
import br.com.neetosena.ireland2.interfaces.RecyclerViewOnClickListenerHack;

/**

  • Created by Neto on 29/12/2017.
    */

public class DadosAcomAdapter extends RecyclerView.Adapter<DadosAcomAdapter.MyViewHolder>{

private List<DadosAcom> mListAcom;
private LayoutInflater mLayoutInflater;
private RecyclerViewOnClickListenerHack mRecyclerViewOnClickListenerHack;

private Context c;
private View mView;
private AlertDailogAcom alertDailogAcom = new AlertDailogAcom();
private DadosAcom d = new DadosAcom();


public DadosAcomAdapter(Context c, List<DadosAcom> l) {
    mListAcom = l;
    mLayoutInflater = (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
    Log.i("LOG", "onCreateViewHolder");

    View v = mLayoutInflater.inflate(R.layout.item_acomodacao1, viewGroup, false);
    MyViewHolder mvh = new MyViewHolder(v);
    return mvh;
}

@Override
public void onBindViewHolder(MyViewHolder myViewHolder, int position) {
    Log.i("LOG", "onBindViewHolder");
    myViewHolder.tvData.setText(alertDailogAcom.mListAc.get(position).getData());
    myViewHolder.ckbVisita.setText(alertDailogAcom.mListAc.get(position).getNome());
    myViewHolder.ckbVisita.setTextIsSelectable(alertDailogAcom.mListAc.get(position).isCheck());


}

@Override
public int getItemCount() {
    Log.i("LOG","getItemCount()" );
    //return mListAcom.size();
    return lista();
}

public int lista() {
    if (alertDailogAcom != null) {

        return alertDailogAcom.getmListAc(d).size();
    } else {
        //mListAcom = alertDailogAcom.getmListAc(1, d);

        return 0;
    }

}

public class MyViewHolder extends RecyclerView.ViewHolder {


    public TextView tvData;
    public CheckBox ckbVisita;

    public MyViewHolder(View itemView) {
        super(itemView);

        tvData = (TextView)itemView.findViewById(R.id.tv_data);
        ckbVisita = (CheckBox) itemView.findViewById(R.id.ckb_visita);
    }
}

}

E o DadosAcom.class

package br.com.neetosena.ireland2;

import android.os.Parcel;
import android.os.Parcelable;

/**

  • Created by Neto on 29/12/2017.
    */

public class DadosAcom implements Parcelable{

private String nome;
private String data;
private String endereco;
private String fone;
private double valor;
private boolean check = true;

public DadosAcom() {

}

public DadosAcom(Parcel parcel) {
    this.nome = parcel.readString();
    this.data = parcel.readString();
    this.endereco = parcel.readString();
    this.fone = parcel.readString();
    this.valor = parcel.readDouble();
    this.check = parcel.readByte() != 0;
}


public DadosAcom(String nome, String data, boolean check) {
    this.nome = nome;
    this.data = data;
    this.check = check;
}

public DadosAcom(String nome, String data, String endereco, String fone, double valor, boolean check) {
    this.nome = nome;
    this.data = data;
    this.endereco = endereco;
    this.fone = fone;
    this.valor = valor;
    this.check = check;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getData() {
    return data;
}

public void setData(String data) {
    this.data = data;
}

public String getEndereco() {
    return endereco;
}

public void setEndereco(String endereco) {
    this.endereco = endereco;
}

public String getFone() {
    return fone;
}

public void setFone(String fone) {
    this.fone = fone;
}

public double getValor() {
    return valor;
}

public void setValor(double valor) {
    this.valor = valor;
}

public boolean isCheck() {
    return check;
}

public void setCheck(boolean check) {
    this.check = check;
}

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

@Override
public void writeToParcel(Parcel parcel, int i) {
    parcel.writeString(nome);
    parcel.writeString(data);
    parcel.writeString(endereco);
    parcel.writeString(fone);
    parcel.writeDouble(valor);
    parcel.writeByte((byte) (check ? 1 : 0)); //if check == true, byte == 1

}

public static final Parcelable.Creator<DadosAcom> CREATOR = new Parcelable.Creator<DadosAcom>(){

    @Override
    public DadosAcom createFromParcel(Parcel parcel) {
        return new DadosAcom(parcel);
    }

    @Override
    public DadosAcom[] newArray(int i) {
        return new DadosAcom[i];
    }
};

}

Estou perdido pois eu precisaria que o list view de inicio, inicializa-se sem dado nenhum, depois que eu clicar no floatingButton que abriria um AlertDialog onde inseridas as informações e clicando em “Ok” para alimentar o listView.

Na sequência teria um outro listView teria a mesma informação mais de forma completa e também quando a pessoa conclui-se a visita marcaria como “visitado” clicando novamente no Item do ListView e marcaria como “Visitado” num checkBox após isso a informação que estava no listview abaixo apareceria com um risco no meio igual a imagem!