안드로이드 개발 질문/답변
(글 수 45,052)
Category 클래스
i.putExtra("data_id", cursor.getColumnIndex("bname"));
로 넘겨서
buildingcategory 클래스
String temp = getIntent().getStringExtra("data_id");
로 받으려고 하는데...
Toast로 잘 넘어왔는지 확인해보면, 아무 값도 못받아 오네요...;; 왜그럴까요??
데이터베이스를
Category 클래스 에서
ListActivity를 사용하여
textview로 bname만 쭉 ~ 리스트로 출력한 다음에
클릭한 bname 값을 어떻게하면 제대로 넘겨줄 수 있을까요?
이렇게 넘어온 값을
buildingcategory 클래스에서
ListActivity를 사용하여
textview로 bname에 해당하는 값을 모두 출력해주려고 합니다. bname, baddress, bcall 등등...
Category 클래스 /extends ListActivity
public void onListItemClick(ListView list, View view, int position, long id) { Intent i = new Intent(Category.this, buildingcategory.class); //클릭한 내용 저장(bname) i.putExtra("data_id", cursor.getColumnIndex("bname")); startActivity(i); }
buildingcategory 클래스 /extends ListActivity
private void init() { // 클릭한 내용 받아옴(bname) String temp = getIntent().getStringExtra("data_id"); Toast.makeText(this, temp, Toast.LENGTH_LONG).show(); cursor = managedQuery(Building.buildings.CONTENT_URI, null, "bname="+temp, null, null); String[] from = new String[]{Building.buildings.BNAME, Building.buildings.BADDRESS,Building.buildings.BLOCATE}; int[] to = new int[]{R.id.row_bname, R.id.row_baddress, R.id.row_blocate}; adapter = new SimpleCursorAdapter(this, R.layout.building_row, cursor, from, to); setListAdapter(adapter); }
자문 자답입니다.
커서의 동작원리를 정확하게 모르고 있었군요.ㅋ
DB에서 첫번째 칼럼의 값을 가져오는 것이었는데
저는 "1" 대신에 "bname" 이라고 써서 안됐습니다.
커서에 딸린 기능들이 상당히 많이 있는데,
차이점은 어떤 형식으로 받고 보내는가 정도 이고
대부분 비슷하더라구요.
디비의
1번째 칼럼내용에서 찾아 오려면
cursor.getString(1)
2번째 칼럼내용에서 찾아 오려면
cursor.getString(2)
3번째 칼럼내용에서 찾아 오려면
cursor.getString(3)
이렇게 쓰시면 됩니다.
기초가 중요하다는 것을 다시 절실히 느낍니다.
어림짐작으로 왜 안넘어가는지 답답했는데, 다시 기본으로 돌아가 생각해보니 잘 해결되더라구요.
================================================
수정된 Category 클래스 /extends ListActivity 입니다.
================================================
@Override
public void onListItemClick(ListView list, View view, int position, long id) {
Intent i = new Intent(category.this, buildingcategory.class);
//클릭한 내용 저장(bname)
i.putExtra("_id", cursor.getString(1));
startActivity(i);
}
================================================
인드로이드 프로그래밍을 하면서 계속해서 느끼는 점은
1. 여기에 질문하고 나면 뭔가 보인다는 것.
2. 대부분은 알아서 해결된다는것.
3. 안드로이드는 상당히 많은 부분을 자동으로 넘겨주고 받아준다는것.
4. 기본에 충실해야 한다는것.