Tôi biết bạn có thể chuyển vào danh sách chuỗi của chuỗi thông qua ý định, nhưng nếu đó là danh sách mảng của một số đối tượng mà tôi đã xác định? Nói một danh sách mảng của Bicyles, làm cách nào để làm điều này?Array Danh sách các đối tượng thông qua mục đích
Trả lời
Bạn có thể làm cho các đối tượng của mình thực hiện Bưu kiện và sử dụng putParcelableArrayListExtra
. Ngoài ra, bạn có thể tuần tự hóa các đối tượng của bạn theo một cách nào đó và đặt mảng byte của các đối tượng được tuần tự hóa của bạn.
một số mã ví dụ sẽ giúp – adit
@adit - Để có ví dụ về cách làm một điều gì đó Khéo léo, hãy xem [tài liệu cho Bưu kiện] (http://developer.android.com/reference/android/os/Parcelable.html). Sau đó, bạn có thể sử dụng một ArrayList
có vấn đề như đối tượng của tôi có một đối tượng Location, do đó, không thực sự biết làm thế nào để xử lý này trong phương pháp writeToParcel – adit
Đây là một ví dụ. MainActivity
gửi danh sách người đến OtherActivity
qua Intent
.
class Person implements Serializable {
int id;
String name;
Person(int i, String s) {
id = i;
name = s;
}
}
public class TestAndroidActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ArrayList<Person> list = new ArrayList<Person>();
list.add(new Person(1, "Tom"));
list.add(new Person(5, "John"));
Intent intent = new Intent(this, OtherActitity.class);
intent.putExtra("list", list);
startActivity(intent);
OtherActivity.java
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
public class OtherActitity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
Intent i = getIntent();
ArrayList<Person> list = (ArrayList<Person>) i
.getSerializableExtra("list");
Toast.makeText(this, list.get(1).name, Toast.LENGTH_LONG).show();
}
}
Lưu ý rằng việc sử dụng * Serializable * cho việc này liên quan đến một hình phạt hiệu suất, vì vậy bạn thực sự nên sử dụng * Parcelable *. – JimmyB
Cảm ơn bạn đã cung cấp thông tin. – wannik
'intent.putExtra (" danh sách ", danh sách);' cung cấp cho tôi một lỗi: 'không thể giải quyết phương thức' –
Một ý tưởng tốt hơn là thực hiện giao diện Parcelable cho đối tượng mà ArrayList bạn muốn đưa vào mục đích? .Đối Ví dụ:
public class Person thực hiện Parcelable {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int describeContents() {
return this.hashCode();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(id);
dest.writeString(name);
}
}
Và sau đó, mã ứng dụng bạn có thể nói:
bundle.putParcelableArrayList ("personList", personList);
Đó là câu trả lời đầu tiên. –
Một trong nhiều cách - bạn có thể serialize danh sách các đối tượng vào một số loại chuỗi đại diện (để cho nó được JSON) và sau đó lấy giá trị chuỗi trở lại danh sách
// here we use GSON to serialize mMyObjectList and pass it throught intent to second Activity
String listSerializedToJson = new Gson().toJson(mMyObjectList);
intent.putExtra("LIST_OF_OBJECTS", listSerializedToJson);
startActivity(intent);
// in second Activity we get intent and retrieve the string value (listSerializedToJson) back to list
String listSerializedToJson = getIntent().getExtras().getString("LIST_OF_OBJECTS");
mMyObjectList = new Gson().fromJson(objectsInJson, MyObject[].class); // in this example we have array but you can easy convert it to list - new ArrayList<MyObject>(Arrays.asList(mMyObjectList));
- 1. Lặp qua đối tượng JSON Danh sách
- 2. R: chuyển danh sách các mục vào đối tượng
- 3. List.Contains (mục) với danh sách chung của các đối tượng
- 4. FB Graph API: Cách lấy danh sách các trường cho một đối tượng thông qua API
- 5. Cách đặt Danh sách theo mục đích
- 6. String.Join trên danh sách các đối tượng
- 7. Xóa danh sách các đối tượng khỏi danh sách khác
- 8. Scala: đồng hành mục đích đối tượng
- 9. Xóa đối tượng khỏi danh sách đối tượng trong python
- 10. Thứ tự truy xuất Danh sách Array
- 11. Lưu trữ Danh sách các đối tượng
- 12. In danh sách các đối tượng
- 13. danh sách các đối tượng để Collections.map
- 14. Tại sao việc lặp lại Danh sách nhanh hơn lập chỉ mục thông qua Danh sách?
- 15. Lọc một danh sách các đối tượng bằng cách so sánh với một danh sách các đối tượng khác nhau
- 16. Populating JavaScript Array từ Danh sách JSP
- 17. Mục đích của Mã định danh tên đối tượng SAML 2 là gì?
- 18. Không thể tạo một mảng danh sách các đối tượng
- 19. Flash AS3 - Lấy danh sách các đối tượng Thư viện?
- 20. Array của Generic Danh sách
- 21. Trình lặp biến dạng, và lặp qua danh sách trong đối tượng danh sách
- 22. Extract danh sách các thuộc tính từ danh sách các đối tượng trong python
- 23. Danh sách đối tượng trong httpcontext.current.cache
- 24. lặp lại thông qua các đối tượng trong JsonCpp
- 25. Làm thế nào để chuyển đổi danh sách các đối tượng thành danh sách giao diện?
- 26. Tạo danh sách các giá trị từ getters của Danh sách đối tượng
- 27. Lặp lại thông qua các đối tượng JavaScript lồng nhau
- 28. Mongo, tìm thấy thông qua danh sách các id
- 29. Yếu tố hoán đổi danh sách Array
- 30. Lập bản đồ Danh sách các đối tượng với Dozer
Bạn có thể tham gia một lớp tĩnh –