2014-10-06 1 views
0

Мой исходный код следующим образом:Знаете ли вы это? о андроида намерении

в MainActivity: Код

protected void onActivityResult(int requestCode, int resultCode, Intent data){ 
    super.onActivityResult(requestCode, resultCode, data); 

    switch(requestCode) 
    { 
    case LOGIN_ACTIVITY_REQUEST_CODE: 
    { 
     if(resultCode == RESULT_OK){ 
      Bundle bd = new Bundle(); 
      bd = data.getBundleExtra("bundle"); 
     } 
    } 
    default: 
    { 
     Log.d(DEBUG_ACTIVITY_CLASS_NAME, "ERROR : onActivityResult - unknown activity code"); 
    } 
    } 
} 

И второе действие заключается в следующем:

public void returnToGameActivity(Bundle bundle) {          
     Intent intent = new Intent(); 
     intent.putExtra("bundle", bundle); 
     this.setResult(RESULT_OK, intent); 

     finish(); 
    } 

Но я не могу получить данные 'BD' из Тип пакета в onActivityResult() в MainActivity. Зачем?

Но в этом случае я могу получить данные бд:

во второй деятельности,

putExtra("string", "test string"); 

и MainActivity,

String str = getStringExtra("string"); 

Почему я не могу получить данные в тип связки?

+0

* но в этом случае я могу получить данные о bd. *, Что это значит? – Blackbelt

ответ

0

Чтобы передать элемент Bundle от одного вида деятельности к другому, используйте следующий код:

Intent i=new Intent(First.this,Second.class); 
     //i.putExtra("mylist",amt); 
     Bundle b = new Bundle(); 
     b.putSerializable("bundleinterest", (Serializable) amtint); 
     b.putSerializable("bundleobj", (Serializable) amt); 
      i.putExtras(b); 
     startActivity(i); 

В Second.class:

 Bundle bn = new Bundle(); 
     bn = getIntent().getExtras(); 
     getobj = new ArrayList<CompoundAmount>(); 
     getinterestobj=new ArrayList<CompoundIntAmount>(); 
     getobj = (ArrayList<CompoundAmount>) bn.getSerializable("bundleobj"); 
     getinterestobj = (ArrayList<CompoundIntAmount>) bn.getSerializable("bundleinterest"); 

Пояснение:

Используйте Serializable или Parcelable интерфейсов при передаче пакетов. Your-получить набор класс должен реализует сериализуемые как: классы

public class CompoundIntAmount implements Serializable { 

    private final String amt; 



    public CompoundIntAmount(String amt){ 
     this.amt = amt; 

    } 

    public String getIntAmount() { 
     return amt; 
    } 

} 

Здесь CompoundAmount и CompoundIntAmount имеют пользовательский набор-получить, который должен реализовать Serializable (как показано выше).