Java 在一个片段中,调用了2个web服务

Java 在一个片段中,调用了2个web服务,java,android,json,android-fragments,android-tabs,Java,Android,Json,Android Fragments,Android Tabs,我有一个主要活动,其中创建了Swipeable选项卡,并从中调用了两个片段。我有两个用于片段A和片段B的Web服务,其中我必须解析来自服务器的数据。我在截击。当我在第一个片段;两个Web服务都被调用,并且数据不是第一次加载的。但在第二次中,它正确地显示了,但应该是这样的,当我在片段A中时,应该调用片段A的服务,当我在片段B中时,应该调用片段B的服务。请帮帮我。我正在附加代码片段。我被困在这里了 MainActivity.java public class MainActivity extends

我有一个主要活动,其中创建了Swipeable选项卡,并从中调用了两个片段。我有两个用于片段A和片段B的Web服务,其中我必须解析来自服务器的数据。我在截击。当我在第一个片段;两个Web服务都被调用,并且数据不是第一次加载的。但在第二次中,它正确地显示了,但应该是这样的,当我在片段A中时,应该调用片段A的服务,当我在片段B中时,应该调用片段B的服务。请帮帮我。我正在附加代码片段。我被困在这里了

MainActivity.java

public class MainActivity extends AppCompatActivity {
    DrawerLayout mDrawerLayout;
    NavigationView mNavigationView;
    FragmentManager mFragmentManager;
    FragmentTransaction mFragmentTransaction;

    int status = 0 ;

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

        /**
         *Setup the DrawerLayout and NavigationView
         */

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
        mNavigationView = (NavigationView) findViewById(R.id.shitstuff);
        android.support.v7.widget.Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);
        // Show menu icon

        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayShowHomeEnabled(true);

        /**
         * Lets inflate the very first fragment
         * Here , we are inflating the NewsFragment as the first Fragment
         */

        mFragmentManager = getSupportFragmentManager();
        mFragmentTransaction = mFragmentManager.beginTransaction();
        mFragmentTransaction.replace(R.id.containerView, new NewsFragment()).commit();

//        mNavigationView.setBackgroundColor(Color.parseColor("#CFCFCF"));
        /**
         * Setup click events on the Navigation View Items.
         */

        mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(MenuItem menuItem) {
                mDrawerLayout.closeDrawers();


                if (menuItem.getItemId() == R.id.nav_item_sent) {
                    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.containerView, new SportsFragment()).commit();

                    status = 1;

                    if (status == 1){

                    }

                }

                if (menuItem.getItemId() == R.id.nav_item_inbox) {
                    FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                    xfragmentTransaction.replace(R.id.containerView, new NewsFragment()).commit();
                }

                if (menuItem.getItemId() == R.id.nav_item_sent){
                    FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                    xfragmentTransaction.replace(R.id.containerView, new VideosFragment()).commit();
                }

                if (menuItem.getItemId() == R.id.nav_item_draft) {
                    FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                    xfragmentTransaction.replace(R.id.containerView, new OpinionFragment()).commit();
                }

                if (menuItem.getItemId() == R.id.nav_item_sports) {
                    FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                    xfragmentTransaction.replace(R.id.containerView, new SportsFragment()).commit();
                }

                if (menuItem.getItemId() == R.id.nav_item_weather) {
                    FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                    xfragmentTransaction.replace(R.id.containerView, new NewsFragment()).commit();
                }

                return false;
            }

        });

        /**
         * Setup Drawer Toggle of the Toolbar
         */



    ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.app_name,
            R.string.app_name);

    mDrawerLayout.setDrawerListener(mDrawerToggle);

    mDrawerToggle.syncState();

}

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_about_us:
                Intent intent = new Intent(MainActivity.this, AboutUs.class);
                startActivity(intent);
                return true;

            case R.id.action_terms_of_use:
                Intent intent_two = new Intent(MainActivity.this, TermsUse.class);
                startActivity(intent_two);
                return true;

            case R.id.action_privacy_policy:
                Intent intent_three = new Intent(MainActivity.this, PrivacyPolicy.class);
                startActivity(intent_three);
                return true;

            case R.id.action_contact_us:
                Intent intent_four = new Intent(MainActivity.this, ContactUs.class);
                startActivity(intent_four);

            case R.id.search:
//                hidetext();
                Toast.makeText(MainActivity.this, "In the development Phase... Thank You...", Toast.LENGTH_SHORT).show();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

//    private void hidetext() {
//
//        Intent i = new Intent(MainActivity.this, SearchResultActivity.class);
//        startActivity(i);
//    }
}
public class LatestNewsFragment extends Fragment {

    // Log tag
    private static final String TAG = MainActivity.class.getSimpleName();

    private static final String url = "http://sikkimexpress.itstunner.com/api/homenewslist/latest";
    private ProgressDialog pDialog;
    private List<Movie> movieList = new ArrayList<Movie>();
    private ListView listView;
    private CustomListAdapter adapter;
    // contacts JSONArray
    private JSONArray users = null;
    RequestQueue requestQueue;
    public static final String KEY_HEADURL="news_url";
    public static final String KEY_DETAILS="news_details";
    public static final String KEY_TITLE = "news_title";

    public LatestNewsFragment() {
        // Required empty public constructor
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

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

        listView = (ListView) rootView.findViewById(R.id.list);

//        requestQueue = Volley.newRequestQueue(getActivity());
        adapter = new CustomListAdapter(getActivity(), movieList);
        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int Position,
                                    long offset) {
                // TODO Auto-generated method stub
                Movie item = (Movie) adapter.getItem(Position);
                Intent intent = new Intent(rootView.getContext(), DetailsPage.class);
//                intent.putExtra("URL", movie.getThumbnailUrl());
//                intent.putExtra("title", movie.getTitle());
//                intent.putExtra("description", movie.getDescription());

                intent.putExtra(KEY_HEADURL, item.getThumbnailUrl());
                intent.putExtra(KEY_TITLE, item.getTitle());
                intent.putExtra(KEY_DETAILS, item.getDescription());

                startActivity(intent);


            }
        });

        pDialog = new ProgressDialog(getActivity());
        // Showing progress dialog before making http request
        pDialog.setMessage("Loading...Please Wait...");
        pDialog.setCancelable(false);
        pDialog.show();

        Volley.newRequestQueue(getActivity()).add(new JsonObjectRequest(Request.Method.GET, url, new Response.Listener<JSONObject>() {
//            JsonObjectRequest jsonObjectRequest =

            @Override
            public void onResponse(JSONObject response) {
                try {
                    hidePDialog();

                    JSONArray jsonArray = response.getJSONArray("HomeNews");

//                    if (jsonArray.length() == 0){
//                        new AlertDialog.Builder(getActivity())
//                                .setTitle("Alert")
//                                .setMessage("No Items found...")
//                                .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
//                                    public void onClick(DialogInterface dialog, int which) {
//                                        // continue with delete
//                                    }
//                                })
//                                .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
//                                    public void onClick(DialogInterface dialog, int which) {
//                                        // do nothing
//                                    }
//                                })
//                                .setIcon(android.R.drawable.ic_dialog_alert)
//                                .show();
//                    }

                    for (int i = 0; i < jsonArray.length(); i++) {
                        JSONObject homenews = jsonArray.getJSONObject(i);
                        Movie movie = new Movie();
                        movie.setNewsId(homenews.getString("NewsId"));
                        movie.setDateTime(homenews.getString("DateTime"));
                        movie.setNewsType(homenews.getString("NewsType"));
                        movie.setTitle(homenews.getString("Title"));
                        movie.setDescription(homenews.getString("Description"));
                        movie.setThumbnailUrl(homenews.getString("MainImageThumbnail"));

                        movieList.add(movie);
                        System.out.println("Setting up in ListView");
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                adapter.notifyDataSetChanged();
            }
        },

                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
//                        new AlertDialog.Builder(getActivity())
//                                .setTitle("No Connectivity ")
//                                .setMessage("Please check your internet connectivity!")
//                                .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
//                                    public void onClick(DialogInterface dialog, int which) {
//                                        // continue with delete
//                                    }
//                                })
//                                        //.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
//                                        //public void onClick(DialogInterface dialog, int which) {
//                                        // do nothing
//                                        //}
//                                        //})
//                                .setIcon(android.R.drawable.ic_dialog_alert)
//                                .show();
                        hidePDialog();
                    }
                }));

//        AppController.getInstance().addToRequestQueue(jsonObjectRequest);
//        requestQueue.add(jsonObjectRequest);
        return rootView;
    }

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

    @Override
    public void onDetach() {
        super.onDetach();
    }

    private void hidePDialog() {
        if (pDialog != null) {
            pDialog.dismiss();
            pDialog = null;
        }
    }
}
TopNewsFragment

public class TopNewsFragment extends Fragment {

    // Log tag
    private static final String TAG = MainActivity.class.getSimpleName();

    private static final String url = "http://sikkimexpress.itstunner.com/api/homenewslist/topnews";
    private ProgressDialog pDialog;
    private List<Movie> movieList = new ArrayList<Movie>();
    Movie movie;
    private ListView listView;
    private CustomListAdapter adapter;
    String imageURL = "", title = "", description = "";
    public static final String KEY_ID = "news_id";
    public static final String KEY_HEADURL = "news_url";
    public static final String KEY_DETAILS = "news_details";
    public static final String KEY_TITLE = "news_title";

    RequestQueue requestQueue;

    public TopNewsFragment() {
        // Required empty public constructor
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

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

        listView = (ListView) rootView.findViewById(R.id.list);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int Position,
                                    long offset) {
                // TODO Auto-generated method stub
                Movie item = (Movie) adapter.getItem(Position);
                Intent intent = new Intent(rootView.getContext(), DetailsPage.class);
                intent.putExtra(KEY_ID, item.getNewsId());
                intent.putExtra(KEY_HEADURL, item.getThumbnailUrl());
                intent.putExtra(KEY_TITLE, item.getTitle());
                intent.putExtra(KEY_DETAILS, item.getDescription());

                startActivity(intent);


            }
        });

//        requestQueue = Volley.newRequestQueue(getActivity());
        adapter = new CustomListAdapter(getActivity(), movieList);
        listView.setAdapter(adapter);

        pDialog = new ProgressDialog(getActivity());
        pDialog.setMessage("Loading...Please Wait...");
        pDialog.setCancelable(false);
        pDialog.show();

        Volley.newRequestQueue(getActivity()).add(new JsonObjectRequest(Request.Method.GET, url, new Response.Listener<JSONObject>() {
             @Override
             public void onResponse(JSONObject response) {
                 hidePDialog();
                 try {
                     JSONArray jsonArray = response.getJSONArray("HomeNews");

//                    if (jsonArray.length() == 0) {
//                        new AlertDialog.Builder(getActivity())
//                                .setTitle("Alert")
//                                .setMessage("No Items found...")
//                                .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
//                                    public void onClick(DialogInterface dialog, int which) {
//                                        // continue with delete
//                                    }
//                                })
//                                .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
//                                    public void onClick(DialogInterface dialog, int which) {
//                                        // do nothing
//                                    }
//                                })
//                                .setIcon(android.R.drawable.ic_dialog_alert)
//                                .show();
//                    }

                     for (int i = 0; i < jsonArray.length(); i++) {
                         JSONObject homenews = jsonArray.getJSONObject(i);
                         Movie movie = new Movie();
                         movie.setNewsId(homenews.getString("NewsId"));
                         movie.setDateTime(homenews.getString("DateTime"));
                         movie.setNewsType(homenews.getString("NewsType"));
                         movie.setTitle(homenews.getString("Title"));
                         title = movie.setTitle(homenews.getString("Title"));
                         description = movie.setDescription(homenews.getString("Description"));
                         movie.setDescription(homenews.getString("Description"));
                         imageURL = movie.setThumbnailUrl(homenews.getString("MainImageThumbnail"));
                         movie.setThumbnailUrl(homenews.getString("MainImageThumbnail"));

                         movieList.add(movie);

                         System.out.println("Setting up in ListView");
//                        System.out.println("Result:- " + newsId + " " + dateTime + " " + newsType + " " + title + " " + description + " " + mainImageURL);
                     }
                 } catch (JSONException e) {
                     e.printStackTrace();
                 }
                 adapter.notifyDataSetChanged();
             }
         }, new Response.ErrorListener() {
             @Override
             public void onErrorResponse(VolleyError error) {
//                new AlertDialog.Builder(getActivity())
//                        .setTitle("No Connectivity ")
//                        .setMessage("Please check your internet connectivity!")
//                        .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
//                            public void onClick(DialogInterface dialog, int which) {
//                                // continue with delete
//                            }
//                        })
//                                //.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
//                                //public void onClick(DialogInterface dialog, int which) {
//                                // do nothing
//                                //}
//                                //})
//                        .setIcon(android.R.drawable.ic_dialog_alert)
//                        .show();
                 hidePDialog();
             }
         }));

//        AppController.getInstance().addToRequestQueue(jsonObjectRequest);
//        requestQueue.add(jsonObjectRequest);
        return rootView;
    }

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

    @Override
    public void onDetach() {
        super.onDetach();
    }

    private void hidePDialog() {
        if (pDialog != null) {
            pDialog.dismiss();
            pDialog = null;
        }
    }
}
公共类TopNewsFragment扩展了片段{
//日志标签
私有静态最终字符串标记=MainActivity.class.getSimpleName();
私有静态最终字符串url=”http://sikkimexpress.itstunner.com/api/homenewslist/topnews";
私人对话;
private List movieList=new ArrayList();
电影;
私有列表视图列表视图;
专用自定义列表适配器;
字符串imageURL=“”,title=“”,description=“”;
公共静态最终字符串KEY\u ID=“news\u ID”;
公共静态最终字符串KEY\u HEADURL=“news\u url”;
公共静态最终字符串KEY\u DETAILS=“news\u DETAILS”;
公共静态最终字符串KEY\u TITLE=“news\u TITLE”;
请求队列请求队列;
公共TopNewsFragment(){
//必需的空公共构造函数
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
最终视图根视图=充气机。充气(R.layout.fragment\u新闻,容器,false);
listView=(listView)rootView.findViewById(R.id.list);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView AdapterView、View视图、int位置、,
长偏移量){
//TODO自动生成的方法存根
电影项目=(电影)适配器.getItem(位置);
Intent Intent=新的Intent(rootView.getContext(),DetailsPage.class);
intent.putExtra(KEY_ID,item.getNewsId());
intent.putExtra(KEY_HEADURL,item.getThumbnailUrl());
intent.putExtra(KEY_TITLE,item.getTitle());
intent.putExtra(KEY_DETAILS,item.getDescription());
星触觉(意向);
}
});
//requestQueue=Volley.newRequestQueue(getActivity());
adapter=新的CustomListAdapter(getActivity(),movieList);
setAdapter(适配器);
pDialog=newprogressdialog(getActivity());
setMessage(“正在加载…请稍候…”);
pDialog.setCancelable(假);
pDialog.show();
Volley.newRequestQueue(getActivity()).add(newJSONObjectRequest(Request.Method.GET,url,new Response.Listener()){
@凌驾
公共void onResponse(JSONObject响应){
hidePDialog();
试一试{
JSONArray JSONArray=response.getJSONArray(“HomeNews”);
//if(jsonArray.length()=0){
//新建AlertDialog.Builder(getActivity())
//.setTitle(“警报”)
//.setMessage(“未找到任何项目…”)
//.setPositiveButton(android.R.string.yes,新的DialogInterface.OnClickListener(){
//public void onClick(DialogInterface dialog,int which){
////继续删除
//                                    }
//                                })
//.setNegativeButton(android.R.string.no,新的DialogInterface.OnClickListener(){
//public void onClick(DialogInterface dialog,int which){
////什么也不做
//                                    }
//                                })
//.setIcon(android.R.drawable.ic_对话框_警报)
//.show();
//                    }
for(int i=0;ipublic class MyApp extends Application {

    private RequestQueue mRequestQueue;

    private static MyApp mInstance;

    @Override
    public void onCreate() {
        super.onCreate();
        mInstance = this;
    }

    public static synchronized MyApp getInstance() {
        return mInstance;
    }

    public RequestQueue getRequestQueue() {
        if (mRequestQueue == null) {
        mRequestQueue = Volley.newRequestQueue(getApplicationContext());
        }

        return mRequestQueue;
    }

    public <T> void addToRequestQueue(Request<T> req) {
        req.setTag(TAG);
        getRequestQueue().add(req);
    }
}
<application
    android:name=".MyApp"
JsonObjectRequest req = new JsonObjectRequest(Request.Method.GET,
            URL, null, new Response.Listener<JSONObject>() {

        @Override
        public void onResponse(JSONObject response) {
            //Do something with response
        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            //Do something with error
        }
    });

    //Put the actual request on the queue
    MyApp.getInstance().addToRequestQueue(req);