이때 다시 호출하면 무엇을 고르든 다시 item0값으로 돌아 와요..
무엇이 잘못 되었나요??
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
public class item_regi_edit extends Activity implements OnClickListener, OnItemSelectedListener{
DBHelper mDBHelper;
TextView p1;
EditText p2,p4,p5,p6,p7;
int mId;
String item;
ArrayAdapter<String> adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.regi_edit);
p1 = (TextView)findViewById(R.id.spintv);
p2 = (EditText)findViewById(R.id.regiet_edit2);
p4 = (EditText)findViewById(R.id.regiet_edit4);
p5 = (EditText)findViewById(R.id.regiet_edit5);
p6 = (EditText)findViewById(R.id.regiet_edit6);
p7 = (EditText)findViewById(R.id.regiet_edit7);
String[] arrayItems = {"item0", "item1", "item2", "item3"};
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, arrayItems);
Spinner spinner = (Spinner)findViewById(R.id.regiet_spin);
spinner.setPrompt("Select item.");
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
Intent intent = getIntent();
mId = intent.getIntExtra("ParamID", -1);
item = intent.getStringExtra("ParamDate");
mDBHelper = new DBHelper(this);
SQLiteDatabase db = mDBHelper.getWritableDatabase();
if(mId == -1){
p1.setText(item);
} else{
Cursor cursor = db.rawQuery("SELECT * FROM item WHERE _id='" + mId + "'", null);
startManagingCursor(cursor);
if(cursor.moveToNext()){
p1.setText(cursor.getString(1));
p2.setText(cursor.getString(2));
p4.setText(cursor.getString(4));
p5.setText(cursor.getString(5));
p6.setText(cursor.getString(6));
p7.setText(cursor.getString(7));
}
}
mDBHelper.close();
Button btn = (Button)findViewById(R.id.regiet_save_btn);
btn.setOnClickListener(this);
btn = (Button)findViewById(R.id.regiet_del_btn);
btn.setOnClickListener(this);
btn = (Button)findViewById(R.id.regiet_back_btn);
btn.setOnClickListener(this);
}
public void onClick(View v) {
// TODO Auto-generated method stub
SQLiteDatabase db;
switch(v.getId()){
case R.id.regiet_save_btn:
if(mId != -1){
db = mDBHelper.getWritableDatabase();
db.execSQL("UPDATE item SET p1='"+ p1.getText().toString()
+ "', p2='" + p2.getText().toString()
+ "', p4='" + p4.getText().toString()
+ "', p5='" + p5.getText().toString()
+ "', p6='"+ p6.getText().toString()
+ "', p7='"+ p7.getText().toString()
+ "' WHERE _id='"+mId+"';");
mDBHelper.close();
} else{
db = mDBHelper.getWritableDatabase();
db.execSQL("INSERT INTO item VALUES(null, '"
+ p1.getText().toString() + "', '"
+ p2.getText().toString() + "', '"
+ "" + "', '"
+ p4.getText().toString() + "', '"
+ p5.getText().toString() + "', '"
+ p6.getText().toString() + "', '"
+ p7.getText().toString() + "');");
mDBHelper.close();
}
break;
case R.id.regiet_del_btn:
if(mId != -1){
db = mDBHelper.getWritableDatabase();
db.execSQL("DELETE FROM item WHERE _id='"+mId+"';");
mDBHelper.close();
} else{
}
break;
case R.id.regiet_back_btn:
finish();
break;
}
Intent intent = new Intent(this, item_list.class);
startActivity(intent);
}
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
p1.setText(adapter.getItem(arg2));
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
return;
}
}
제 경우는 다시 엑티비티를 호출하지 않고
초기값 세팅을 다시 해주는 형식으로 했습니다.
님이 원하시는건 기존에 있던값이 그대로 있던것을 유지하고 싶어서 그런것인가요?
저장후에
이놈만 안해주면 될듯한대요.. 자신 페이지를 다시 호출하는 거라서 처음으로 돌아가는 것이겠지요.
참고로 전 엑티비티 호출 안하고 웹처럼 초기값 세팅해주고 원하는 데이터만 다시 세팅하게 만들었습니다.
구현 방법의 차이지만, 저도 초보라 도움이 될지 모르겠내요.