안드로이드 SQLite를 이용하여


1. ListView -> 2. 리스트 각 아이템을 터치하면 상세 내용 액티비티 -> 3. 버튼을 누르면 수정모드(EditText)


이렇게 만들고 있습니다.


intent와 putExtra, getStringExtra를 이용해서 데이터를 넘기고 있고요.


1에서 2로 넘어가는 과정은 잘 됩니다. 그러나 2에서 3으로 넘어갈 때 에러가 나진 않지만


에디트텍스트에는 리스트뷰의 첫번째 데이터값이 계속 나옵니다.


어떤 곳을 수정해야 할 지 잘 모르겠네요. 


지적 부탁드립니다.




1. 리스트뷰 액티비티



ListView mlistView = (ListView) findViewById(android.R.id.list);


DBHandler dbhandler = DBHandler.open(this);


final Cursor cursor = dbhandler.selectAll();

startManagingCursor(cursor);


SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(this,

R.layout.list_row, cursor, new String[] { "message_text",

"date" }, new int[] { R.id.text1, R.id.date });


setListAdapter(cursorAdapter);


mlistView.setOnItemClickListener(new OnItemClickListener() {


@Override

public void onItemClick(AdapterView<?> parent, View view,

int position, long id) {

// TODO Auto-generated method stub


Intent i = new Intent(Existing_Text.this, Single_List.class);

//내용과 날짜값 데이터를 넘긴다.

i.putExtra("message_text",

cursor.getString(cursor.getColumnIndex("message_text")));

i.putExtra("date",

cursor.getString(cursor.getColumnIndex("date")));


startActivity(i);


}

});



2. 상세 내용 액티비티


@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.content);


//넘어온 데이터를 받는다.

Intent intent = getIntent();

content_text = intent.getStringExtra("message_text");

content_date = intent.getStringExtra("date");


TextView text_content = (TextView) findViewById(R.id.tv1);

text_content.setText(String.valueOf(content_text));


TextView date_content = (TextView) findViewById(R.id.date2);

date_content.setText(String.valueOf(content_date));


for (int btnId : BUTTONS) {

Button btnUnderButton = (Button) findViewById(btnId);

btnUnderButton.setOnClickListener(this);

}

}


public void onClick(View v) {

// TODO Auto-generated method stub


DBHandler dbhandler = DBHandler.open(this);



switch (v.getId()) {


case R.id.btn_edit: // 수정모드


Intent i = new Intent(Single_List.this, Edit_Text.class);


cursor = dbhandler.selectAll();

i.putExtra("message_text",

cursor.getString(cursor.getColumnIndex("message_text")));

i.putExtra("date", cursor.getString(cursor.getColumnIndex("date")));

startActivity(i);

//cursor.close();


break;


}



3. 수정모드 액티비티


public class Edit_Text extends Activity implements View.OnClickListener {


static final int[] BUTTONS = { R.id.btn_save2, R.id.btn_can2 };


EditText edit;


private static final String TAG = "Edit_Text";


@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.content_edit);


edit = (EditText) findViewById(R.id.et1);


Intent intent = getIntent();

String content_text = intent.getStringExtra("message_text");

//String content_date = intent.getStringExtra("date");


edit.setText(String.valueOf(content_text));


for (int btnId : BUTTONS) {

Button btnUnderButton = (Button) findViewById(btnId);

btnUnderButton.setOnClickListener(this);

}

}


public void onClick(View v) {

// TODO Auto-generated method stub


}

}



파란 배경 부분에서 데이터를 키값을 잘못 넣었나 싶은데


이리 고치고 저리 고쳐도 원하는 답을 못가져오네요.


실수한 부분이 어딘지 알 수 있을까요?