Potrzebuję _id z bazy danych odpowiadających klikniętemu rekordowi. Mylnie sądziłem, że parametr long id w onItemClick() przekazuje numer kolejnego wyświetlonego rekordu, a nie przekazuje szukane przeze mnie _id. :facepalm1:
Pojawił się teraz drugi problem ponieważ przekazuję te _id do kolejnej aktywności:
av.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(
AdapterView<?> parent, View view, int position, long id) {
Intent Ostateczna = new Intent(wynik_data.this, Ostateczna.class);
Ostateczna.putExtra("id", id);
startActivity(Ostateczna);
}
i wczytuję w drugiej aktywności, jednak niezależnie od pobranego rekordu w ostatniej aktywności wyświetlają mi się dane z pierwszego rekordu (_id = 0)
kod drugiej aktywności:
package data.org;
import java.sql.SQLException;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import data.org.Handler;
public class Ostateczna extends Activity{
private String[] columns1 = new String[] { Handler.KEY_WYDARZENIE };
private String[] columns2 = new String[] { Handler.KEY_DATA_DOKLADNA };
private String[] columns3 = new String[] { Handler.KEY_OPIS };
private String[] columns4 = new String[] { Handler.KEY_OSOBY };
private String awydarzenie;
private String bdata;
private String copis;
private String dosoby;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.koniec);
Bundle extras = getIntent().getExtras();
int dataId = extras.getInt("id");
Handler dbhandler = new Handler(this);
try {
dbhandler.open();
} catch (SQLException e) {
e.printStackTrace();
}
Cursor a = Handler.mkDatabase.query(Handler.DATABASE_TABLE, columns1, Handler.KEY_ROWID + "=" + dataId, null, null, null, null);
a.moveToFirst();
awydarzenie = a.getString(dataId);
Cursor b = Handler.mkDatabase.query(Handler.DATABASE_TABLE, columns2, Handler.KEY_ROWID + "=" + dataId, null, null, null, null);
b.moveToFirst();
bdata = b.getString(dataId);
Cursor c = Handler.mkDatabase.query(Handler.DATABASE_TABLE, columns3, Handler.KEY_ROWID + "=" + dataId, null, null, null, null);
c.moveToFirst();
copis = c.getString(dataId);
Cursor d = Handler.mkDatabase.query(Handler.DATABASE_TABLE, columns4, Handler.KEY_ROWID + "=" + dataId, null, null, null, null);
d.moveToFirst();
dosoby = d.getString(dataId);
dbhandler.close();
TextView wydarzenie = (TextView) findViewById(R.id.Nazwa_wydarzenia);
wydarzenie.setText(awydarzenie);
TextView data = (TextView) findViewById(R.id.Koniec_data);
data.setText(bdata);
TextView opis = (TextView) findViewById(R.id.Koniec_opis);
opis.setText(copis);
TextView osoby = (TextView) findViewById(R.id.Koniec_osoby);
osoby.setText(dosoby);
}
}