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 필드의 자료를 읽어와야 합니다.

 

읽어오는 명령문 좀 알려주세요. ㅠ