Проблема передачи ArrayList из одного занятия в другое - PullRequest
0 голосов
/ 22 мая 2011

Я постоянно сталкиваюсь с проблемами, пытаясь передать ArrayList из одного занятия в другое. Мой код терпит неудачу с исключением нулевого указателя, когда я пытаюсь перебрать ArrayList в моем классе XMLParser. Я поместил операторы print в Activity, которая генерирует ArrayList, и она выглядит нормально. Кто-нибудь может увидеть, что я делаю неправильно или почему я получаю исключение нулевого указателя при получении ArrayList?

public void onClick(View v) {
    if (selItemArray[0] == null) {
        Toast.makeText(getApplicationContext()," Please make a Selection ", Toast.LENGTH_SHORT).show();
    } else {
        Intent intent = new Intent(Recipes2.this, XMLParser.class);
        Log.v("Recipes2", "selItemArray[0] before call to XML Parser : " + selItemArray[0]);
      //Log.v("Recipes2", "selItemArray[1] before call to XML Parser : " + selItemArray[1]);    
        intent.putExtra("items_to_parse",  selItemArray);
        startActivityForResult(intent, 0);              
    }
}




public class XMLParser extends ListActivity {
            /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //Bundle b = getIntent().getExtras();
        //itemsToParse = b.getStringArrayList("items_to_parse");
        ArrayList<String> itemsToParse = new ArrayList<String>();
        itemsToParse = getIntent().getExtras().getStringArrayList("items_to_parse");        Iterator<String> iterator = itemsToParse.iterator();            while(iterator.hasNext())
                Log.v("XMLParser", iterator.next().toString());

Ответы [ 2 ]

1 голос
/ 22 мая 2011

Похоже, вы помещаете массив String, а не ArrayList<String>.

0 голосов
/ 22 мая 2011

Вы использовали строковый массив на стороне "отправителя" и пытаетесь вернуть его как ArrayList на стороне получателя. Это не сработает. Используйте массив String с обеих сторон и - при необходимости - перетащите его в список массивов.

Порядок передачи данных здесь:

Передача массива String между двумя классами в приложении для Android

Чтобы преобразовать его в список - просто выполните:

List<String> = Arrays.asList(stringArray);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...