3

我是FragmentActivity,Fragment和ViewPager的新手。使用Web服務響應更新ViewPage的片段

我使用FragmentActivity和2片段。

每個片段使用的是我將從AsyncTask中的Web服務調用中獲得的相同數據。

現在我不想爲每個片段調用兩次Web服務。

相反,我的想法是使用FragmentActivity中的AsyncTask從Web服務獲取數據,然後通知FragmentAdapter已收到數據。因此,適配器應該更新這兩個片段的視圖。

但我堅持如何實現這一目標。如果有人以這種方式或者像這樣的一些例子給我建議,那將會很棒。謝謝。

回答

1

在後臺啓動一個任務,當結果收到通知的片段像這樣

package com.example.myapplication2; 

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v7.app.ActionBarActivity; 

public class MainActivity3 extends ActionBarActivity { 


    private FragmentManager fragManager; 
    private Fragment fragOne,fragTwo; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 

    fragManager = getSupportFragmentManager(); 
    if((fragOne=fragManager.findFragmentById(R.id.frag_one))==null){ 
     fragOne = new FragOne(); 
     fragManager.beginTransaction() 
       .add(R.id.container, fragOne) 
       .commit(); 
    } 
    if((fragTwo=fragManager.findFragmentById(R.id.frag_two))==null){ 
     fragTwo = new FragTwo(); 
     fragManager.beginTransaction() 
       .add(R.id.container, fragTwo) 
       .commit(); 
    } 

    startTaskInBackground(); 

    } 


    @Override 
    public void onTaskComplete() { 
    fragOne.onDataReceived(); 
    fragTwo.onDataReceived(); 
    } 


} 
+0

我面臨同樣的問題...任何人使用凌空庫有這個問題...的解決方案.... @Rajesh Batth –