Я хочу получить объект из списка (содержится во фрагменте).Я создал класс для 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;
}
}