Próbuję przekazać arrayList do innego działania przy użyciu zamiarów. Oto kod w pierwszym ćwiczeniu.
case R.id.editButton:
Toast.makeText(this, "edit was clicked", Toast.LENGTH_LONG).show();
Intent intent = new Intent(this, editList.class);
intent.putStringArrayListExtra("stock_list", stock_list);
startActivity(intent);
break;
Tutaj próbuję pobrać listę w drugim ćwiczeniu. Coś tu jest nie tak?
Intent i = new Intent(); //This should be getIntent();
stock_list = new ArrayList<String>();
stock_list = i.getStringArrayListExtra("stock_list");
android
arraylist
android-intent
locoboy
źródło
źródło
intent.putStringArrayListExtra
,intent.getStringArrayListExtra
albogetSerializableExtra
nie istnieje. A jeśli użyję zaćmienia? Czy muszę pobrać i dodać bibliotekę Gson?jeśli używasz Generic Array List with Class zamiast określonego typu, takiego jak
DAWNY:
private ArrayList<Model> aListModel = new ArrayList<Model>();
Tutaj Model = klasa
Otrzymywanie zamiarów, takich jak:
aListModel = (ArrayList<Model>) getIntent().getSerializableExtra(KEY);
MUSISZ PAMIĘTAĆ:
Tutaj Model-class musi być zaimplementowany jak: ModelClass implementuje Serializable
źródło
Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivityForResult(intent, aListModel);
Załóżmy, że musisz przekazać listę arraylistyczną następującej klasy z bieżącej aktywności do następnej czynności // klasa obiektów znajdujących się na liście arraylistycznej // pamiętaj o zaimplementowaniu klasy z interfejsu Serializable // Serializable oznacza, że konwertuje obiekt na strumień bajtów i pomaga przenieść ten obiekt
public class Question implements Serializable { ... ... ... }
w swojej bieżącej aktywności prawdopodobnie masz następującą ArrayList
ArrayList<Question> qsList = new ArrayList<>(); qsList.add(new Question(1)); qsList.add(new Question(2)); qsList.add(new Question(3)); // intialize Bundle instance Bundle b = new Bundle(); // putting questions list into the bundle .. as key value pair. // so you can retrieve the arrayList with this key b.putSerializable("questions", (Serializable) qsList); Intent i = new Intent(CurrentActivity.this, NextActivity.class); i.putExtras(b); startActivity(i);
aby uzyskać arraylistę w następnym ćwiczeniu
//get the bundle Bundle b = getIntent().getExtras(); //getting the arraylist from the key ArrayList<Question> q = (ArrayList<Question>) b.getSerializable("questions");
źródło
//arraylist/Pojo you can Pass using bundle like this Intent intent = new Intent(MainActivity.this, SecondActivity.class); Bundle args = new Bundle(); args.putSerializable("imageSliders",(Serializable)allStoriesPojo.getImageSliderPojos()); intent.putExtra("BUNDLE",args); startActivity(intent); Get SecondActivity like this Intent intent = getIntent(); Bundle args = intent.getBundleExtra("BUNDLE"); String filter = bundle.getString("imageSliders"); //Happy coding
źródło
public class StructMain implements Serializable { public int id; public String name; public String lastName; }
to mój przedmiot. zaimplementuj Serializable i utwórz ArrayList
ArrayList<StructMain> items =new ArrayList<>();
i włóż pakiet
Bundle bundle=new Bundle(); bundle.putSerializable("test",items);
i stwórz nową intencję, która zamieni Pakiet w Zamiar
Intent intent=new Intent(ActivityOne.this,ActivityTwo.class); intent.putExtras(bundle); startActivity(intent);
aby otrzymać pakiet, wpisz ten kod
Bundle bundle = getIntent().getExtras(); ArrayList<StructMain> item = (ArrayList<StructMain>) bundle.getSerializable("test");
źródło