2014-04-24 4 views
0

다음과 같은 문제가 있습니다.공유 환경 설정 Android

2 가지 활동이 포함 된 Android 앱을 코딩했습니다. 첫 번째는 Activity이고, 두 번째는 설정입니다.

Activity 설정에 EditText 상자에 이름을 입력 할 수 있습니다. 이름은 첫 번째 Activity 인사말로 표시되어야합니다.

어떻게하면 간단하게 처리 할 수 ​​있습니까?

+0

[활동간에 데이터를 전달하는 방법 (http://stackoverflow.com/questions/2091465/how-do) -i-pass-data-between-android 사이의 데이터) – ThaMe90

+0

[developer.android.com] (http://developer.android.com/guide/topics/ui/settings.html)에서 가이드를 확인하십시오.) – germi

+0

이 자습서의 모든 내용을 읽을 수 있습니다. http://www.vogella.com/tutorials/AndroidFileBasedPersistence/article.html#preferences –

답변

1

두 가지 방법이 있습니다.

첫째 : onActivityResult

주요 활동에서

:

사용 startActivityForResult(intent, ACTIVITY2)

및 추가 설정 작업에서이 방법

@Override 
protected void onActivityResult (int requestCode, int resultCode, Intent intent) 
{ 
    if (resultCode == Activity.RESULT_OK) 
    { 
     String string_1 = intent.getStringExtra ("my_value_from_second_activity", ""); 
    } 
} 

:

둘째

: 된 SharedPreferences, 좋은 방법

설정 활동 :

SharedPreferences settings = getSharedPreferences("config", 0); 
SharedPreferences.Editor editor = settings.edit(); 
editor.putInt("my_value", edttext.getText().toString()); 
editor.commit(); 

홈페이지 Ativity :

SharedPreferences settings = getSharedPreferences("config", 0); 
String value  = settings.getString("my_value", ""); 
1

SharedPreferences으로 하시겠습니까? 이것이 설정 활동에서 데이터를 저장하는 방법입니다. 당신의 주요 활동에

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 
Editor editor = sharedPreferences.edit(); 
editor.putString("NAME", yourEditText.getText().toString()); 
editor.commit(); 

그리고 다음을 버튼과 이름을 표시하는 텍스트 뷰를 추가 : 당신의 이름을 소개하면 기본 설정을 저장하고 클릭 리스너에이 코드를 넣어 버튼을 추가합니다. 버튼에 다음 코드를 추가하십시오.

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 
String name = sharedPreferences.getString("NAME", null); 
yourTextView.setText(name); //Add the name to your textview 

희망이 있습니다!

1

당신은 하나 개의 활동에서 의도을 통해 데이터를 전달할 수 있습니다 ~s와 함께 상수 클래스를 사용할 수도 있습니다 tatic 변수 값 을 저장하고 apk가 설치 프로그램이 될 때까지 prefrenct 저장소 데이터를 공유하므로 하나만 사용할 수 있습니다.