У меня есть ListView, заполненный ArrayList. Когда я нажимаю на элемент LV, я вижу, что приложение запускает новое действие. Но если я нажму на второй или третий элемент списка, это как если бы я нажал первый. Вот код:setOnItemClickListener возвращает первый элемент
RipartitoriRepo repo = new RipartitoriRepo(this);
my_list = repo.getRipartitoriByIdUnitàAbitativa(IdUnitàAbitativa);
if(my_list.size()!=0){
my_listview.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
Intent intent = new Intent(MainActivity.this, NextActivity.class);
TextView my_textview = (TextView)findViewById(R.id.IdElementCell);
String myId = my_textview.getText().toString();
intent.putExtra("IdElement", myId);
startActivity(intent);
}
});
SimpleAdapter adapter;
adapter = new SimpleAdapter(MainActivity.this, my_list, R.layout.ripartitori_row, new String[]{"idripartitore","posizione", "matricola", "altezza", "larghezza"},
new int[]{R.id.IdRipartitore_cell,R.id.ripart_posizione, R.id.ripart_matricola, R.id.rip_altezza, R.id.rip_larghezza});
my_listview.setAdapter(adapter);
}
И вот клетка:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:id="@+id/IdElement_cell"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rip_testo1"
android:text="Posizione:"
android:textStyle="bold"
android:textSize="20dp"
android:layout_marginLeft="5dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/rip_testo1"
android:text="xxx"
android:textSize="20dp"
android:layout_marginLeft="3dp"
android:id="@+id/ripart_posizione"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:textSize="20dp"
android:textStyle="bold"
android:text="Matricola:"
android:id="@+id/rip_testo4"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ripart_matricola"
android:layout_toRightOf="@id/rip_testo4"
android:text="xxx"
android:textSize="20dp"
android:layout_marginLeft="3dp"
/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rip_testo2"
android:text="Altezza:"
android:layout_marginLeft="8dp"
android:textSize="17dp"
android:textStyle="bold"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
android:text="xxx"
android:layout_toRightOf="@+id/rip_testo2"
android:textSize="17dp"
android:id="@+id/rip_altezza"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/rip_altezza"
android:text="Larghezza:"
android:layout_marginLeft="10dp"
android:textSize="17dp"
android:textStyle="bold"
android:id="@+id/rip_testo3"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rip_larghezza"
android:layout_toRightOf="@id/rip_testo3"
android:text="xxx"
android:textSize="17dp"
android:layout_marginLeft="3dp"/>
</RelativeLayout>
</LinearLayout>
Например: если первый элемент имеет Id = 00001
и второй имеет Id = 0002
, когда я нажимаю на списке, то setOnItemClickListener
метод работы как будто я всегда щелкнул первым элементом. Таким образом, my_textview всегда будет 00001
.
Вы всегда проезжаете один и тот же идентификатор –
точно .. но почему? – gabboSonc