2010-07-22 2 views
0

Android 개발에서 새로운데 새로운 활동을 만들 때 문제가 있습니다.startActivity() before 액션()

시작하기 전에 내 활동을 사용하고 싶습니다.

MyActivity menu = new MyActivity(); 
menu.setXmppreception(reception); 
Intent intent = new Intent(Screen.this,MyActivity.class); 
Screen.this.startActivity(intent); 

을하지만, 내 "메뉴"와 "MyActivity.class는"동일한 인스턴스가 아닌 예를 들어, 나는 그것을 시도했다. 따라서 나는 그것을 시도했다 :

MyActivity menu = new MyActivity(); 
menu.setXmppreception(reception); 
Intent intent = new Intent(Screen.this,menu); 
Screen.this.startActivity(intent); 

을하지만 그것은 작동하지 않습니다 ... 당신이 나를 도와위한 솔루션이 있나요?

영어로 된 도움과 도움에 감사드립니다.

답변

2

Extras를 사용해야하는 활동간에 데이터를 전달하려는 경우 원하는대로 할 수 없으며 Serializable 항목 만 전달할 수 있습니다.

먼저 문맥

당신은 몇 가지 옵션이 있습니다 (활동/서비스 등이 있습니다) :

1) 사용하여 Intent에서 Bundle :

Intent mIntent = new Intent(this, Example.class); 
Bundle extras = mIntent.getExtras(); 
extras.putString(key, value); 

2) 만들기 새로운 번들

Intent mIntent = new Intent(this, Example.class); 
Bundle mBundle = new Bundle(); 
mBundle.putString(key, value); 
mIntent.putExtras(mBundle); 
" 번들이"수 "가 있고 : 10

3) 텐트

putExtra() 바로 가기 방법을 사용
Intent mIntent = new Intent(this, Example.class); 
mIntent.putExtra(key, value); 

새로운 컨텍스트 (활동/서비스 등)

Intent myIntent = getIntent(); // this getter is just for example purpose, can differ 
if (myIntent !=null && myIntent.getExtras()!=null) 
    String value = myIntent.getExtras().getString(key); 
} 

참고가 될 수 Parcelables 및 Serializables에 대해 "put"메소드를 사용합니다. 방금 데모 용으로 String을 사용했습니다.

+0

세 번째 옵션 (putExtra() 메서드)을 사용하겠습니다. 내가 XMPPReception 클래스에서 "Serializable"을 구현해야하는 모든 것을 이해한다면 그렇지 않습니까? 다시 한 번 감사드립니다. –

+0

아마'reception'는 Serializable이어야하지만 Eclipse가 알려줄 것입니다. – Pentium10

1

새로운 활동을 직접 만들 필요가 없습니다. Android 시스템이 자동으로 수행합니다. 에서 onCreate 방법, 당신은 할 수

Intent intent = new Intent(Screen.this,MyActivity.class); 
startActivity(intent); 

와 다음, 당신을 MyClass 자바 파일을 : 당신이 MyActivityScreen Activity에서 가고 싶은 경우 ,이 작업을 수행 할 수 있습니다

this.setXmppreception(reception); 

이 방법을 , 니가 원한다고 생각하는거야?