안드로이드 개발 질문/답변
(글 수 45,052)
public class DbExample extends ListActivity { final Class[] classNames = {test.class};//, test2.class, test3.class}; final CharSequence[] items={"상세보기","삭제"}; static final String KEY_NAME = "name"; static final String KEY_PHONE = "phone"; static final String KEY_ROWID = "_id"; // DB 필드(열) private SimpleCursorAdapter adapter; private TextView text; private EditText edit1, edit2; public DbAdapter db; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); db = new DbAdapter(this); db.open(); text = (TextView)findViewById(R.id.text); edit1 = (EditText)findViewById(R.id.edit1); edit2 = (EditText)findViewById(R.id.edit2); ((Button)findViewById(R.id.add)).setOnClickListener(listener); } public void onListItemClick(ListView l, View v, final int position, final long id) { super.onListItemClick(l, v, position, id); new AlertDialog.Builder(DbExample.this) .setTitle("뭐할래?") .setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if(which==0) { Intent i = new Intent(); ComponentName comp = new ComponentName(DbExample.this, classNames[position]); i.setComponent(comp); i.putExtra("value1", edit2.getText().toString()); startActivity(i); } else { db.deleteBook(id); text.setText(""); edit1.setText(""); edit2.setText(""); Cursor c = db.fetchAllBooks(); startManagingCursor(c); adapter.changeCursor(c); } } }).show(); }
참고로 위 코드는.. EditText인 edit1, edit2로 data를 DB에 저장하구요.
또 함수를 이용해서 list로 표현하구요.
리스트가 클릭되었을때, dialog띄워서 필요하면 다음 액티비티로 넘기는 코드입니다.
putExtra가 있는 49번 라인이 문제입니다..
사실 string이 안넘어가는건 아니구요..
i.putExtra("value1", edit2.getText().toString()); 에서
edit2.getText().toString()이 아니라,, DB에서 자료를 읽어와야 할거같은데.
어떻게 명령문을 적어야 할지 잘 모르겠습니다. ㅠㅠ
DB 중에 line 7의 KEY_PHONE 필드의 자료를 읽어와야 합니다.
읽어오는 명령문 좀 알려주세요. ㅠ