데이터베이스를 리스트뷰에 뿌린다음 사용자가 항목중 하나를 선택했을때 그 항목에대한 데이터값을 받아와서 연산을 해야되는데
ListView list = (ListView)findViewById(R.id.listView1);
final ArrayAdapter<String> sel = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arr);
list.setAdapter(sel);
list.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?>parent,View v, int position,long id){
Intent intent = new Intent(SelectActivity.this, ResultActivity.class);
intent.putExtra("data_id", c.getColumnIndex("id"));
startActivity(intent);
}
});
이렇게 데이터 아이디를 넘긴다음
다음 엑티비디에서
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
Intent intent=getIntent();
int id=intent.getIntExtra("data_id", 0);
}
이렇게 아이디를 받아오는게 맞는지는 모르겟지만 ㅜㅜ
일단 이렇게 까지 했는데
받아온 id를 이용해서 해당 id에 저장되있는 name,old,fac값을 불러오고싶은데
어떻게해야좋을지모르겟네요 ㅠㅠ 도와주세요 ㅠㅠ
인텐트로 넘어온 값이 ID 밖에 없으니까 나머지 컬럼들에 대해서는 넘어온 ID 값을 가지고 다시 디비를 디져서 컬럼값들을 가져와서 출력을 해줘야겠네요..
//int id=intent.getIntExtra("data_id", 0);
Cursor c;
String val = Integer.toString(id);
String sql = "SELECT name,old,fac FROM tablename";
sql += " WHERE id = ";
sql += val;
c=db.rawQuery(sql ,null);
이런식으로 하신다면 원하시는 값들을 가져올 수 있을거라고 봅니다 ㅎㅎ
extras.putSerializable 를 검색해서 사용해 보세요~
Bundle extras = new Bundle();
extras.putSerializable(ListViewActivity.DATAKEY, id);