2011-03-14 3 views
3

Я использую стандартный метод Android Intent/Bundle для передачи данных в суб-активность.Пакет становится нулевым при передаче в подпроцесс

Проблема заключается в том, что, хотя намерение хорошо выглядит до того, как действие начнется, оно отображается как нулевое значение в вспомогательной активности. Я не могу найти кого-либо еще, у кого была эта проблема, поэтому я подумал, что попрошу указать, где искать/как отлаживать.

(Target является Android 2.1)

Родитель активность сниппет:

@Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
     super.onListItemClick(l, v, position, id); 

     Intent i = new Intent(ctx, ArticleView.class); 

     i.putExtra("url", articles.get(position).url.toString()); 
     // The following line correctly logs the URL 
     Log.d(TAG,"Starting article viewer with url " + i.getStringExtra("url")); 

     startActivityForResult(i,ACTIVITY_ARTICLE); 
    } 

Детский активность сниппет:

@Override 
protected void onCreate(Bundle icicle) { 

    super.onCreate(icicle); 
    setContentView(R.layout.article_view); 

    if (icicle != null) { 
     // Never called! 
    } else { 
     // Always called 
     Log.d(TAG,"Icicle is null - no URL passed in"); 
    } 

} 

Игнорируя тот факт, что сосулька является недействительным и не пытается получить информацию о состоянии из он (с getString) приводит к зависанию и:

03-14 22:23:03.529: WARN/ActivityManager(52): Activity HistoryRecord{44ddd238 com.t.s/.ArticlesList} being finished, but not in LRU list 

Любые советы приветствуются.

ответ

3

Это не Intent, который передается в конструктор subactivity (или какой-либо деятельность).

Намерение может быть извлечена через

Intent intent = getIntent(); 

сосульку Bundle вы имеете в виду это Bundle, который Активности использует, когда он возвращается из приостановленного состояния. Например. если вам нужно сохранить какое-либо состояние своей активности до его перезапуска, это место, где хранятся данные.

+0

Спасибо за деталь, я вижу, что я сейчас делаю неправильно. –

1

В OnCreate() попытайтесь получить доступ к свертку этого пути

Bundle b = getIntent().getExtras(); 
+0

Спасибо, это работает. –

Смежные вопросы