Я изучаю Android (на данный момент ОЧЕНЬ новичок). Я искал и читал другие сообщения, но я не нашел этого (или не простого). Я хочу передать Arraylist из операции в службу намерений, я думаю, что это самый простой способ сделать это; однако я получаю исключение NullPointer.

public class MainActivity extends Activity {
private static final String TAG = "Main";
ArrayList<String> lista_actual = new ArrayList<String>();
...
    public void onClick (View v) {
    Intent msgIntent = new Intent(MainActivity.this, MiIntentService.class);
    lista_actual.add("probasndo cad");
    lista_actual.add("dfafsadf");
    lista_actual.add("dfasf");
    msgIntent.putStringArrayListExtra("lista", lista_actual);
    msgIntent.putExtra("iteraciones", 10);
    startService(msgIntent);
    //copiar();

}});

Затем, где я пытаюсь получить массив:

protected void onHandleIntent(Intent intent) 
{

ArrayList<String> lista_archivos = intent.getStringArrayListExtra("lista_actual");
Log.d ("Intent", Integer.toString(lista_archivos.size()));
.
.
.

Спасибо.

1
narco 15 Мар 2014 в 17:03
Также вы можете использовать static ArrayList для достижения того же.
 – 
Chirag Ghori
15 Мар 2014 в 17:08

2 ответа

Лучший ответ

Пока вы вызываете свой Arraylist в сервисе намерения, вызывая неправильный ключ, он должен быть:

ArrayList<String> lista_archivos = intent.getStringArrayListExtra("lista");
Log.d ("Intent", Integer.toString(lista_archivos.size()));

Замените lista_actual на lista.

1
ZealDeveloper 15 Мар 2014 в 17:08
Да, я вижу это несколько секунд назад (не жду ответа так скоро). Спасибо, и да, какая глупость!!! :)
 – 
narco
15 Мар 2014 в 17:19

Вам необходимо сериализовать arrayylist, чтобы переходить между действиями. Дополнительную помощь можно найти здесь. надеюсь, это поможет

0
Community 23 Май 2017 в 14:49