1

私は、アクティビティからVolleyリクエストを送信しています.2つのフラグメントで結果にアクセスしたいと思います。可能であれば、これらの値に断片的にアクセスできます.1つのフラグメント内のすべてのtext1からtext6にアクセスしたい2つの応答のために私は2つのフラグメントから2つの要求を送る必要がありますか? "lion_1"、 "テキスト2": "lion_2"、 "テキスト3": "lion_3"、 "text4": "lion_4"、 「text5 以下REPONSEアクティビティからのボレーのリクエストを送信し、そのフラグメント内のレスポンスを使用できますか?

{ "テキスト1" であります": "lion_5"、 "text6": "lion_6"、 "POJO":[{ "培地": "lion_1.jpe"、 "名前": "lion_1" }、{ " 中":" lion_2.jpe "、 " name ":" lion_2 " }、 { " medium ":" lion_3.jpe "、 "名前": "lion_3" }、{ "培地": "lion_4.jpe"、 "名前": "lion_4" }、{ "培地": "lion_5.jpe"、 "名前 ": "lion_5" }、{ "中": "lion_6.jpe"、 "名": "lion_6" } ] }

+0

はい可能です。 – Haroon

答えて

0

はい、あなたがこれを行うことができます。

ここでは、主なアクティビティからあなたの応答を伝える方法について説明します。

MainActivity

public class MainActivity extends AppCompatActivity { 
    FragOne fragOne; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     ... 

     fragOne = new FragOne(); 
     //add fragment 


    } 

    void onResponse(String response){ 
     fragOne.getNetworkResponse(response); 
    } 
} 

断片

class FragOne extends Fragment { 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     ... 
    } 

    public void getNetworkResponse(string responce){ 
     //process response here. 
    } 
} 
0

はい、それはispossible。まず、バックグラウンドでJsonレスポンスを解析し、それをアクティビティに保存する必要があります。 Web呼び出しと解析が完了したら、フラグメントに新しいデータを通知します。フラグメント化によって特定のデータをフェッチするためのインタフェースを作成して、アクティビティで実装することができます。各フラグメントは、そのインタフェースにアクティビティをキャストし、必要なデータを取得します(存在する場合)。新しいデータであることをフラグメントに伝えるには、インターフェイスを作成して新しいデータに実装するか、毎回新しいフラグメントインスタンスを作成してアクティビティからデータを取得することがあります。

0

ここでの回答は、断片に進み、また、活性および断片をカップリングする。

しかし、私は断片から活性を切り離すだろう。

IMO待ち行列のフォームに任意の場所を追加し、自分自身について知っていなくてもデータを渡すことなく、任意の場所で応答を受信したいと考えています。 RxJavaを使用してこれを達成し、要求タグに基づいて応答を観察する1つの方法。

私はあなたがRxJavaをプラグインし、簡単にこの動作を実現することができバレーボールに基づいてライブラリ jus作成した

:他のフラグメントで

//Calls the API (adds requests to the queue)  
MyJus.intructablesApi().list(20,0, Instructables.SORT_RECENT,"id"); 
//starts the other fragment 
frag = InstructablesListFragment.newInstance(); 
fragmentManager.beginTransaction() 
      .replace(R.id.container, frag) 
      .commit(); 

 RecyclerAdapter recyclerAdapter = new RxAdapter(
MyJus.hub().get(REQ_LIST).map(o -> ((ResultEvent) o).response)); 
つのフラグメントに

ハブは、すべての要求からのすべての応答を収集し、概念によってそれらを整理します。

in githubを確認できます。

関連する問題