2013-02-21 3 views
0

내 앱에 두 가지 액티비티가 있습니다. 사용자가 다음에 MainTax로 돌아온 다음에 이동하면 editText의 텍스트를 저장하려고합니다. 값이 EDITTEXT에 배치해야 내 코드는님이 액티비티를 전환하는 중에 날짜를 저장할 수 없었습니다

public class MainActivity extends Activity { 

EditText editText; 
String name = null; 

@Override 
protected void onCreate(Bundle savedInstanceState) {   
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    editText = (EditText) findViewById(R.id.editText1); 
    if(savedInstanceState == null){ 
    editText.setText("Some Thing"); 
    }else{ 
     String newValue = savedInstanceState.getString("myData"); 
     editText.setText(newValue); 
    } 
    Log.d("ARSHAY....", "in onCreate()"); 
} 

@Override 
protected void onSaveInstanceState(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 

    super.onSaveInstanceState(savedInstanceState); 
    editText = (EditText) findViewById(R.id.editText1); 
    name = editText.getText().toString(); 
    savedInstanceState.putString("myData", name); 

} 


public void goToNextArsh(View view) { 


    Intent intent = new Intent(MainActivity.this, Second.class); 
    startActivity(intent); 
} 
    } 

그러나 이것은 다시 MainActivity에 오는 새로운 입력을 설정하지 않습니다. 신체가 그것을하는 방법을 알고 있습니까?

+1

http://developer.android.com/training/basics/data-storage/index.html – donfede

+0

사용 [SharedPreference] (HTTP : // developer.android.com/reference/android/content/SharedPreferences.html). 여기에 [예] (http://stackoverflow.com/questions/3624280/how-to-use-sharedpreferences-in-android-to-store-fetch-and-editvalues) – Renjith

+0

첫 번째입니다! 둘 다 감사합니다. 나는이 모든 메소드를 시도해 보았는데, getText.getText.getText(). toString()) .command(); 'onPasue() 메쏘드에서 값을 다시 얻는 것'String newValue = getPreferences (MODE_PRIVATE) .getString ("som.arshay.retreive.data", editText.getText(). toString()); \t \t \t editText.setText (newValue);'. 하지만 여전히 내 원하는 결과를 달성 할 수없는 임 ... –

답변

1

onRestoreInstanceState(Bundle savedInstanceState). 단지 onCreate()

에서 사용 및 사용이 코드

@Override 
protected void onPause() { 
    SharedPreferences pref = getSharedPreferences("YOUR_KEY", MODE_PRIVATE); 
    Editor edit = pref.edit(); 
    edit.putString("som.arshay.retreive.data", editText.getText().toString()); 
    edit.commit(); 
    super.onPause(); 
} 

@Override 
protected void onResume() { 
    SharedPreferences pref = getSharedPreferences("YOUR_KEY", MODE_PRIVATE); 
    String newValue = pref.getString("som.arshay.retreive.data", ""); 
    editText.setText(newValue); 
    super.onResume(); 
} 
+0

오케이! 이 코드는 여전히 작동하지만, 첫 번째 실행에서'onCreate()'에 설정 한'editText'에서 값을 볼 수 없습니다. 해결책을 제안하십시오. –

0

사용이 방법 onSaveInstanceState(Bundle outState)하고 editText = (EditText) findViewById(R.id.editText1); 두 번 사용하는 이유는 무엇보다도 먼저