Получить объект из списка - PullRequest
0 голосов
/ 13 марта 2019

Я хочу получить объект из списка (содержится во фрагменте).Я создал класс для Psicólogos, а затем я хочу, чтобы на событии onItemClickListener перешел к другому действию, и там появляются Strings nome, especialidade и telemóvel по нажатому элементу.Как мне это сделать?С этим кодом всегда появляются строки второго элемента, где бы я ни щелкал

public class ApoioPresencialFragment extends Fragment {
private FirebaseFirestore firestore = FirebaseFirestore.getInstance();
private ListView listView;
private ArrayAdapter adaptadorPsicólogos;
private ArrayList psicólogosDisponíveis;
private AlertDialog.Builder AlertDialogPsicólogo;


public ApoioPresencialFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment

    final View view = inflater.inflate(R.layout.fragment_apoio_presencial, container, false);


    listView = (ListView) view.findViewById(R.id.listviewPsicólogos);
    psicólogosDisponíveis = new ArrayList<>();
    adaptadorPsicólogos = new ArrayAdapter(getActivity(), R.layout.lista_psicologos_presencial, psicólogosDisponíveis);
    listView.setAdapter(adaptadorPsicólogos);

final CollectionReference coleção = firestore.collection("…");coleção.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
    @Override
    public void onSuccess(final QuerySnapshot queryDocumentSnapshots) {

        psicólogosDisponíveis.clear();

        for (final QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots){
            final Psicólogos psicólogos = documentSnapshot.toObject(Psicólogos.class);
            final String nome = psicólogos.getNome();
            final String especialidade = psicólogos.getEspecialidade();
            final String telemóvel = psicólogos.getTelemóvel();
            final String skype = psicólogos.getSkype();
            String vazio = "";

psicólogosDisponíveis.add(nome + "\n" + "Especialidade: " + especialidade + "\n");

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                                @Override
                                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {


final Object psicólogoSelecionado = psicólogosDisponíveis.get(position);

AlertDialogPsicólogo = new AlertDialog.Builder(getActivity());
                                    AlertDialogPsicólogo.setMessage("…");
                                    AlertDialogPsicólogo.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {

                                            Intent intent = new Intent(getActivity(),PsicologoSelecionadoPresencial.class);
                                            intent.putExtra("nome", nome);
                                            intent.putExtra("especialidade", especialidade);
                                            intent.putExtra("telemóvel", telemóvel);
                                            intent.putExtra("skype", skype);
                                            startActivity(intent);

}
                    });
                    AlertDialogPsicólogo.setNegativeButton("Não", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                        }
                    });
                    AlertDialogPsicólogo.create();
                    AlertDialogPsicólogo.show();
                }
            });
        }
    }
    adaptadorPsicólogos.notifyDataSetChanged();


    return view;
}

PsicologoSelecionadoPresencial.java

public class PsicologoSelecionadoPresencial extends AppCompatActivity{
private String nomePsicólogo;
private String especialidadePsicólogo;
private String telemóvelPsicólogo;
private String skypePsicólogo;

private TextView nome;
private TextView especialidade;
private TextView telemóvel;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.psicologo_selecionado_presencial);

    Bundle extra = getIntent().getExtras();

    if (extra != null){
        nomePsicólogo = extra.getString("nome");
        especialidadePsicólogo = extra.getString("especialidade");
        telemóvelPsicólogo = extra.getString("telemóvel");
        skypePsicólogo = extra.getString("skype");

    }

    nome = (TextView) findViewById(R.id.nome);
    especialidade = (TextView) findViewById(R.id.especialidade);
    telemóvel = (TextView) findViewById(R.id.telemóvel);

    nome.setText(nomePsicólogo);
    especialidade.setText("Especialidade: " + especialidadePsicólogo);
    telemóvel.setText("Contacto telefónico: " + telemóvelPsicólogo);

}

Psicologos.java

public class Psicólogos {

    private String nome;
    private String especialidade;
    private String telemóvel;
    private String skype;

    public Psicólogos (){
    }

    public Psicólogos (String nome, String especialidade, String telemóvel, String skype){

        this.nome = nome;
        this.especialidade = especialidade;
        this.telemóvel = telemóvel;
        this.skype = skype;
    }

    public String getNome () {return nome; }

    public String getEspecialidade() {
        return especialidade;
    }

    public String getTelemóvel() {
        return telemóvel;
    }

    public String getSkype() {
        return skype;
    }


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...