2012-03-07 5 views
1

나는 2 번의 활동이 있습니다. 각각은 활동을 확장합니다. 나는 여기에서 찾은 모든 방법을 시도했지만 그들 중 누구도 일하고 ​​있지 않았다. 하나에서 다른 활동으로 String 배열을 보내야하지만 첫 번째 활동은 유지해야합니다.다른 활동에서 문자열 배열을 사용하는 방법

Intent intent = new Intent(ActivityFrom.this, ActivityTo.class); 
               intent.putExtra("string-array", ARRAY); 
               ActivityFrom.this.startActivity(intent); 

그리고이 받아 봐에 :

Intent intent = getIntent(); 
     String[] array = intent.getExtras().getStringArray("string-array"); 

어떤 생각 나는이 시도?

+0

이 U가 intent.putStringArrayListExtra (이름, 값)와 함께 시도 않았다 위해 트릭을 할해야합니다;? –

+0

SharedPreferences를 사용할 수 있습니다. – Nick

+0

다음과 같은 활동을 시작할 때 : startActivity (intent); – user1254836

답변

0
Bundle b=new Bundle(); 
b.putStringArray("key", strarray); 
Intent intent=new Intent(this, nextActivity.class); 
intent.putExtras(b); 
startActivity(intent); 
+0

활동 별 표시 : startActivity (intent); 그것은 전체 화면을 덮고 나는 그것을 끝내야한다. 여기 어떤 생각? – user1254836

+0

도움이 필요하면 http://stackoverflow.com/questions/6421036/how-to-make-activity-not-covering-full-screen – AtanuCSE

0

싱글 톤 클래스를 제안합니다. 나중에 사용하려는 경우 응용 프로그램 전체에서 문자열 배열을 사용할 수도 있습니다. 이런 식으로 뭔가 당신은 시작한다 : 당신은 또한 putStringArrayListExtra() 방법을 사용할 수 있습니다

public class StringArrayHolder { 
    private static StringArrayHolder instance; 
    private String[] mArray; 

    public static StringArrayHolder getInstance() { 
     if (instance == null) { 
      instance = new StringArrayHolder(); 
     } 
     return instance; 
    } 

    private StringArrayHolder() { 

    } 

    public void setStringArray(String[] value) { 
     mArray = value; 
    } 

    public String[] getStringArray() { 
     return mArray; 
    } 

} 

.

희망이 도움이됩니다.

+0

이것은 Android에서의 안티 패턴입니다. 액티비티간에 객체를 전달할 때는 제공된 메소드 (번들 및 추가 기능)를 사용해야합니다. –

0

Bundle 개체에 을 사용하여 배열이 포함 된 public Intent putExtra (String name, Bundle value) 개체를 사용할 수 있습니다.

0

이 당신

ActivityFrom.java: 
... 
    // Start ActivityTo 
    Intent intent = new Intent(this, ActivityTo.class); 
    intent.getExtras().putStringArray("string-array", ARRAY); 
    startActivity(intent); 
... 

ActivityTo.java: 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    String[] strings = getIntent().getStringArrayExtra("string-array"); 
    ... 
} 
+0

활동 별이 다음과 같은 경우 : startActivity (intent); 그것은 전체 화면을 덮고 끝내야 만합니다. 여기 어떤 생각? – user1254836

+0

"계속 하시겠습니까?"란 무엇을 의미합니까? 애플리케이션 활동은 일반적으로 Android에서 전체 화면으로 표시됩니다. 화면의 일부분 만 다루는 응용 프로그램을 만드는 것과 관련하여 질문이있는 경우이 질문을 별도로 작성하는 것이 좋습니다. –

관련 문제