public void onClick(View v) { EditText name = (EditText) findViewById(R.id.tname); EditText num = (EditText) findViewById(R.id.tnum); String temp1; Intent intent = new Intent(QDialList.this, GetQdPatt.class); startActivity(intent); onPause(); SharedPreferences tpatt = getSharedPreferences("tpat", MODE_PRIVATE); temp1 = tpatt.getString("tpat", ""); Toast.makeText(QDialList.this, temp1, Toast.LENGTH_SHORT).show(); Log.i(TAG, temp1); if (temp1 != null) { Log.e(TAG, temp1); mDbOpenHelper.insert( name.getText().toString().trim(), num.getText().toString().trim(), temp1.trim() ); //추가를 누를 경우 EditText에 있는 String 값을 다 가져옴 } else { Toast.makeText(QDialList.this, "다시 입력해주세요.", Toast.LENGTH_SHORT).show(); } //ArrayList 내용 삭제 mInfoArr.clear(); doWhileCursorToArray(); mAdapter.setArrayList(mInfoArr); mAdapter.notifyDataSetChanged(); //Cursor 닫기 mCursor.close(); };
GetQdPatt 액티비티에서 SharedPreference로 String을 받아
이를 기존 액티비티의 editText에 입력된 값과 함께 db에 입력하려고 하는데
GetQdPatt가 실행되는 순간 이미 editText 값들이 입력되어버려서 String을 받아도 입력이 안됩니다.
액티비티가 전환되면 pause가 걸리는걸로 아는데, 어째서 이렇게 되는건가요?
GetQdPatt 액티비티를 호출하는 액티비티(this.class)의 onResume 내에서 해당 루틴을 구성하거나,
startActivity(intent); 대신
startActivityForResult(intent, ?)와 onActivityResult 메소드를 활용하시면 될 것 같네요~