2015-10-24 2 views
2

Я пытаюсь открыть новую активность в карте Google из своего основного вида деятельности, передаю Extras в основном действии и проверяю намерение, все в порядке, и вся информация там. Когда открывается новое действие , если я проверяю информацию с помощью отладки, я могу видеть, что все тоже хорошо, когда я использую getStringArrayExtra(), он всегда возвращает NULL.getStringArrayExtra() всегда возвращает null

Основная деятельность

mapIntent.putExtra("LAN_LIST", goodLan.toArray()); 
mapIntent.putExtra("LON_LIST", goodLon.toArray()); 
mapIntent.putExtra("HeadLine_LIST", goodheadline.toArray()); 
mapIntent.putExtra("Context_LIST", goodcontext.toArray()); 
startActivity(mapIntent); 

Карта активность

Intent intent = getIntent(); 

    lan = intent.getExtras().getStringArray("LAN_LIST");//does not work 
    lan = intent.getStringArrayExtra("LAN_LIST");//does not work too 
    lon = intent.getStringArrayExtra("LON_LIST");//same 
    Headline = intent.getStringArrayExtra("HeadLine_LIST");//same 
    Context = intent.getStringArrayExtra("Context_LIST");//same 

Я не проводка журнала, потому что у меня нет каких-либо исключений, все переменные получают null и что это.

Спасибо!

+0

Вы уверены, что данные, которые вы передаете, являются ** StringList **, поэтому он преобразуется в массив String? Я сомневаюсь, что данные не являются List of String, чем обычно. – user370305

ответ

-1

Вы также должны добавить название деятельности в качестве параметра метода getStringArray.

lan = intent.getExtras().getStringArray(MainActivity.LAN_LIST); 
+0

ключевая строка не const, как это сделать? – Alikman103

+0

Сделал это const, все еще ничего. – Alikman103

0

Когда вы устанавливаете значение как массив, вы можете попробовать, как это для всех:

mapIntent.putExtra("LAN_LIST", goodLan.toArray(new String[goodLan.size()]));

Если предположить, что списки содержат только строки, это будет работать.

С другой стороны, в вашем MainActivity вы можете передать их в ArrayList с помощью

mapIntent.putStringArrayListExtra("LAN_LIST", (ArrayList<String>) goodLan);

И тогда вы могли бы получить их в MapActivity, как intent.getExtras().getStringArrayListExtra("LAN_LIST");

+0

Я понятия не имею, почему, но это сработало. Большое спасибо! – Alikman103

+0

Приятно знать, что это вам помогло. Как вы думаете, вы могли бы принять это как ответ? –

0

Все, что я должен был сделать, чтобы передать информацию, Список.

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