2013-11-26 4 views
2

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

List<HashMap<String, String>> places = null; 

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

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

public void list_airports(View v) 
     { 
      Intent intent; 
      switch (v.getId()) { 

      case R.id.list_items: 
       intent = new Intent(getApplicationContext(), List_airports.class); 
       intent.putExtra("places",places); 
       startActivity(intent); 
       break; 

      } 
      } 

в следующей деятельности я сделал это:

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.list_airports); 
     Bundle extras = getIntent().getExtras(); 
     String[] places=extras.getStringArray(Intent.EXTRA_TEXT); 

но метод putExtra Безразлично» t accept List<HashMap<String, String>>

+0

Вы правильно, метод putExtra не принимает List > ... Так будет вопрос? – Scott

+0

@Scott вопрос: есть ли способ передать 'List >' –

ответ

1

Используйте putExtra(String, Serializable), чтобы передать его в Intent и getSerializableExtra(String) способ его извлечения.

Кроме того, использование ArrayList вместо List

0

Что такое Serializable

Сериализуемый скриншот взять из текущего класса

1. Пропуска намерение из контекста класса в новый класс

HashMap<String, String> hashMap= adapter.getItem(position); 
Intent intent = new Intent(OneActivity.this, SecondActivity.class); 
intent.putExtra("key", value); 
startActivity(intent); 

2.Retrive хэш-карта для другого класса

Bundle b=getIntent.getExtra(); 
if(b!=null) 
    { 
    yourhasmaplist=b.getSerializableExtra("key"); 
    } 
Смежные вопросы