안드로이드 개발 질문/답변
(글 수 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 필드의 자료를 읽어와야 합니다.
읽어오는 명령문 좀 알려주세요. ㅠ



