9

Tôi cần biết, trong đó phương thức gọi lại đoạn, chúng ta nên gọi một dịch vụ web mà sau đó quay trở lại dịch vụ web mảnh không nên gọi lại.Phương pháp tiếp cận đúng để gọi dịch vụ web (API) từ lớp Fragment

Ví dụ: Tôi có một lớp mảnh MyFragment.java

public class MyFragment extends Fragment { 


    @Override 
    public void onAttach(Activity activity) { 
     super.onAttach(activity); 

    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_layout, container, 
       false); 

     return rootView; 
    } 

} 

Tôi cần phải biết phương pháp gọi lại tôi phải gọi webservice để cập nhật giao diện người dùng của đoạn. Ngay bây giờ Tôi đang gọi các dịch vụ web từ onCreateView phương thức. nhưng tôi cần biết cách tốt nhất để gọi dịch vụ web từ phân đoạn là gì.

Trả lời

4

Nếu tôi hiểu vấn đề của bạn một cách chính xác, bạn muốn tìm nạp một số dữ liệu từ máy chủ và sau đó thông báo cho đoạn dữ liệu được chuẩn bị và vẽ lại đoạn đó, có đúng không? Theo tài liệu here:

onCreate() - Hệ thống gọi này khi tạo đoạn. Trong quá trình triển khai, bạn nên khởi tạo các thành phần thiết yếu của đoạn mà bạn muốn giữ lại khi đoạn bị tạm dừng hoặc dừng lại, sau đó tiếp tục lại.

onCreateView() Hệ thống gọi điều này khi đến lúc phân đoạn vẽ giao diện người dùng lần đầu tiên. Để vẽ một giao diện người dùng cho đoạn của bạn, bạn phải trả lại một khung nhìn từ phương thức này, đó là gốc của bố cục của đoạn. Bạn có thể trả về null nếu đoạn không cung cấp giao diện người dùng.

Khi bạn tạo Phân đoạn ở một nơi khác trong ứng dụng của mình, phương pháp onCreate() được gọi. Khi đoạn được rút ra lần đầu tiên, phương thức onCreateView() được gọi và phương thức này trả về một khung nhìn đã tạo. Trong trường hợp của bạn, bạn có thể đi với một cái gì đó như:

  1. Khai báo biến thể (container) cho dữ liệu và bộ điều hợp này (nếu bạn sử dụng).
  2. Trong onCreate, khởi tạo tất cả dữ liệu này (vùng chứa trống), khởi tạo bộ điều hợp và sau đó thực hiện AsyncTask.
  3. Trong onCreateView, chuẩn bị chế độ xem quay lại - bộ điều hợp v.v. Vì vậy, bây giờ, sau khi AsyncTask sẽ kết thúc, trong onPostExecute nó gọi your_adapter.notifyDataSetChanged(). Thao tác này sẽ vẽ lại phân đoạn, vì bộ điều hợp sẽ được thông báo rằng dữ liệu đã thay đổi (được lấy từ máy chủ).
0

Phụ thuộc vào thời điểm bạn muốn tìm nạp dữ liệu. Bạn có muốn nó mỗi khi ứng dụng đến nền trước không? Sử dụng onResume() Bạn có muốn nó chỉ khi ứng dụng bắt đầu lần đầu tiên không? Sử dụng onViewCreated(), được gọi sau khi onCreateView kết thúc.

Các vấn đề liên quan