2013-08-30 3 views
2

내 앱에 5 개의 활동이 있습니다. 각 활동에는 일부 데이터가 있습니다. 지난 활동의 모든 이전 활동 데이터가 필요합니다. 모든 이전 활동은 일종의 서식입니다. 사용자가 데이터를 채우고 다음 활동으로 이동하고 마지막 활동은 이전 활동의 모든 데이터를 표시합니다.하나의 활동에서 여러 활동의 데이터를 얻는 적절한 방법은 무엇입니까?

+1

관련 항목 : http://stackoverflow.com/questions/1013469/make-a-wizard-like-application-in-android – dst

+2

응용 프로그램 –

+0

처럼 정적 싱글 톤 클래스를 사용할 수 있습니다. 단 하나의 globalData 클래스에 대해서는 +1합니다. 지금까지 가장 쉬운 방법 – o0rebelious0o

답변

1

이렇게하는 방법에는 여러 가지가 있습니다.

  • 텐트의 사용 및 putString(...) 같은 데이터를 저장 : 당신이 temporarilly 활동의 각 의도의 데이터를 저장하고 다음 목적으로 추가로 이동해야하기 때문에 정말 좋은하지 않습니다
    .

  • 데이터에 클래스를 사용하고 의도 당 활동 수를 전달하십시오.
    이렇게하면 클래스의 인스턴스를 활동에 전달하여 데이터를 쓰거나 읽습니다.하지만이 클래스에는 Parcelable/Serializable 인터페이스가 필요합니다.

  • 정적 클래스 사용 :
    모든 활동에서이 클래스에 액세스하여 원하는대로 읽고 쓸 수 있습니다.

  • 의도와 함께 번들 사용 :
    모든 데이터를 번들에 저장하고 활동으로 전달하십시오.

  • 디자인에 대해 생각해보세요. 조각 :
    5 개의 단편으로 하나의 활동이 있습니다. 모든 Fragment는 Activity에서 데이터를 저장/읽습니다.

최상의 방법은 번들을 사용하는 것입니다.

0

당신은 사용할 수 있습니다 Intent

FirstActivity

Intent intent = new Intent(FirstActivity.this,SecondActivity.class); 
intent.putExtra("key_value", string); 
startActivity(intent); 

SecondActivity

String text = getIntent().getStringExtra("key_value"); 

또는 당신은 더 이상 머물 수있는 데이터가 필요하고, 응용 프로그램을 사용하면, 사망 후에 당신은 그것을 다시 사용할 수있는 경우 사용 가능 SharedPrefrences

장소 어떤 Activity

SharedPreferences prefs = getPreferences(MODE_PRIVATE); 
String prefString = prefs.getString("ValueOne", null); 
+1

한 활동에서 다른 활동으로 데이터를 전달하는 대신 모든 데이터를 표시하려는 활동에 모든 데이터를 직접 저장할 수 있습니까? –

+0

@SonusinghChauhan 예, 그렇게하기 위해 SharedPreferences를 사용할 수 있습니다. – Naskov

1

옵션의 공유 환경 설정에서 일부 Activity

SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit(); 
editor.putString("ValueOne", "SomeValue"); 
editor.commit(); 

검색 데이터에서 그 데이터를 1 :

당신은 모든 활동에 대한 데이터를 추가 할 옆에 이월하는 경우 그런 다음 bundle으로 데이터를 전달하는 것이 좋습니다.

데이터가 비교적 작고 다음 활동으로 데이터를 전달하고 나중에 데이터를 저장하지 않으려는 경우 번들은 시나리오에서 더 좋습니다.

옵션 2 :

당신은 Sharedprefrences를 사용할 수 있습니다. 데이터가 미래에 저장 될 때 사용하는 것이 더 좋습니다.

옵션 3 :

더 많은 기록을 가지고 있고 당신이 구조화 된 방식으로, 그리고 Sqlite 데이터베이스가 분명 다음 미래를 위해 보관하십시오.

위 옵션은 데이터를 매우 자주 사용하기를 원하고 구조화되지 않은 경우에 사용합니다.

관련 문제