Java - Ayuda con position de setOnItemClickListener

 
Vista:

Ayuda con position de setOnItemClickListener

Publicado por Acert (1 intervención) el 06/08/2020 03:27:19
Muy Buenas, tengo una aplicación con una base de datos SQLite de una lista de personas con sus datos y tiene un SearchView, al presionar un nombre de la lista se abre un Activity con los datos del usuario, hasta ahi funciona perfectamente, el problema viene cuando se presiona el nombre desde los resultados de búsqueda, el Activity se abre con los datos de la persona con la misma posición en la lista inicial

O sea: En la imagen de ejemplo la busqueda dio Cindy y Milciades, si presiono Cindy aparecen los datos de Marta quien está en la posicion 1 del listado original, si presiono Milciades que aparece segundo entonces muestra los datos de Cindy quien está segunda en la lista inicial

result1


El OnItemClick envia los datos de la posicion del listado inicial y no de los resultados de busqueda

Aquí esta el evento click en el Activity 1 (origen)

1
2
3
4
5
6
7
8
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
        Intent intent = new Intent(MainActivity.this, FotografoActivity.class);
        intent.putExtra("datosfotografos", (Parcelable) mFotografoList.get(position));
        startActivity(intent);
    }
});

Aquí el Activity 2 (destino)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class FotografoActivity extends AppCompatActivity {
 
    private FotografoModelo Item;
    private TextView tvNombre;
    private TextView tvCategoria;
    private TextView tvProvincia;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fotografo);
 
        Item = (FotografoModelo) getIntent().getParcelableExtra("datosfotografos");
        tvNombre = (TextView) findViewById(R.id.nombre);
        tvCategoria = (TextView) findViewById(R.id.categoria);
        tvProvincia = (TextView) findViewById(R.id.provincia);
 
 
        tvNombre.setText(Item.getNombre());
        tvCategoria.setText(Item.getCategoria());
        tvProvincia.setText(Item.getProvincia());
 
 
    }
 
}

me podrian ayudar a ver que debo modificar, muchas gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder