Tôi có 6 loại khác nhau của List
kết quả sau khi hoàn thành AsyncTask
. Và các kết quả List
phải được trả về Activity
. Ví dụ: List<A>
, List<B>
, List<C>
, List<D>
, List<E>
và cuối cùng là List<F>
.Cách trả lại Danh sách ẩn danh hoặc ArrayList trên AsyncTask trong Android
Đây là tôi AsyncTask
:
public class myAsync extends AsyncTask<String, String, List> {
private List resultList;
@Override
protected List doInBackground(String... params) {
//params[0] is url
//params[1] is type
callAPI api = new callAPI(params[0], params[1]);
// According to type api decides type of List and generates
return api.getJSON(); // returns a List which already parse JSON
}
@Override
protected void onPostExecute(List result) {
// Result is here now, may be 6 different List type.
this.resultList = result
}
// returns result
public List getResultList() { return this.resultList; }
}
Tôi sẽ gọi AsyncTask như thế này:
myAsync task = new myAsync();
task.execute(params);
List myList = task.getResultList(); // type is uncertain
Log.d("Tag", Integer.toString(myList.size());
Bạn biết đấy, tôi phải chỉ ra những kiểu trả về (Result) giữa <> thẻ. Nếu tôi chọn loại cụ thể cho List
, nó không hoạt động đối với các loại khác.
Thật vậy, tôi đã cố gắng trả lại List<Object>
và chỉ List
loại. Nhưng không hiệu quả.
Tôi không muốn sử dụng 6 khác nhau Async
. Có thể giải quyết vấn đề này chỉ với AsyncTask
không? Tôi đoán tôi cần danh sách ẩn danh hoặc một cái gì đó tương tự không chắc chắn. Bất cứ ai có thể giải thích điều này?
Bạn có thể bỏ qua <>, nó sẽ không phải là một lỗi, nó chỉ cảnh báo bạn. – kosa
Bạn có nghĩa là tôi nên sử dụng định nghĩa này: 'AsyncTask '. Nếu có, thì loại trả lại là gì? Tôi đã trả về tất cả các loại như một danh sách bình thường, có lỗi NullException. –
Đăng stacktrace ở đây, tôi nghi ngờ NullPointer bạn đang nhận được có thể từ một nơi khác. – kosa