2013-10-19 2 views
0

I 3 Activitys액세스 다른 putextra 두 개의 서로 다른 활동에서 활동

  • 활동 1 활동에 putextra에 의해 3 개 항목을 보내려고이 활동 2 활동 3 putextra에 의해 2 개 항목을 보내려고 3
  • 당신이 그 활동 1과 2는 활동에 다른 항목을 보내시피

내가 알고 싶은 3

는이 아닌지을 할 수 있습니다 가능한 경우 나에게 길을 보여 주시기 바랍니다...

activity1에 :

Intent in = new Intent(getApplicationContext(),Activity3.class); 
in.putExtra("OrderID", tvOrderID.getText().toString()); 
in.putExtra("OrderSHOPNAME", tvShopName.getText().toString()); 

activity2에 :

Intent in = new Intent(getApplicationContext(),Activity3.class); 
in.putExtra("OrderQTY", tvOrderID.getText().toString()); 
in.putExtra("OrderCOLORNAME", tvShopName.getText().toString()); 

Activity3 : ????? 여분의 것을 얻으려면 여기에 무엇을 넣어야합니까?

네 개의 서로 다른 putextra

이 볼 수 있듯이 그것은 언급 활동 보내는 putextra 할 수 있습니까?

+0

자세한 내용을 입력하십시오. 코드 예제가 좋을 것입니다. 그래서 우리는 당신이 무엇을하려고 하는지를 알 수 있습니다.또한 구두점을 사용하십시오. –

+0

물론 가능합니다. 특별한 문제는 없습니다. 계속해서 시도해보십시오. 문제가 발생하면 여기에서 자세한 내용과 함께 질문하고 시도한 내용과 예상대로 작동하지 않는 내용을 보여줍니다. – janos

답변

1

의도 사항에 추가 할 수있는 요소의 양에는 제한이 없습니다. 또한 인 텐트가 재사용에 의해 동일하게 남아있는 경우 다른 액티비티가 다른 양의 요소를 추가하더라도 문제가되지 않습니다. 이것은 인 텐트 엑스트라가 번들을 사용하고 있으며 이것은 단지 HashMap이기 때문입니다.

나는 2 개의 다른 의도가 있다고 가정합니다. Activity1 또는 Activity2가 Activity3을 시작합니다. 이 방법을 사용하면 Intent에 Activity를 호출 한 Activity를 확인하는 지표를 추가해야합니다. 이를 바탕으로 NPE 및 불필요한 데이터 할당을 피하기 위해 데이터를 읽습니다.

// in Activity1 or 2 
Intent i = new Intent(this, Activity3.class); 
i.putExtra("Activity", 1); 
i.putExtra("foo", "bar"); // repeat this line as you like 
startActivity(i) 

// in Activity3 
Intent i = getIntent(); 
String s; 
switch(i.getIntExtra("Activity")) { 
case 1: 
    // get the data of Activity1 
    s = i.getStringExtra("foo"); 
    break; 
case 2: 
    // get the data of Activity2 
    break; 
} 
+0

좋아하는 것 같은데 ... 간단한 코드를 제공해 주시겠습니까? –

+0

@HosseinMansouri 내 대답을 편집했습니다. –

+0

고맙습니다. –

0

extra 기능으로 가능합니다. 우리는 myname라는 것을 보내

Intent i = new Intent(Activity1.this,Activity3.class); 
    //"" is name of extra thing (field) 
    //and after the comma is the item 
    i.putExtra("myname", "ahmed"); 
    startActivity(i); 

을 이제 : 당신이 activity 3activity 1에서 뭔가를 보낼 :

.putExtra

가 사용하는 다른 활동을 보내려면 ahmed.

Activity3에서 우리는 이제 우리의 경우 (아메드) 우리가, :

//the between "" is the field name we retrieved from acitvity1 
String name = intent.getStringExtra("myname"); 

같은 문자열 경우처럼 다음 일을 할당 getIntent();

Intent intent = getIntent(); 

하여 일을 얻을 String name 값은 ahmed이됩니다.

관련 문제