代码之家  ›  专栏  ›  技术社区  ›  Trusted

在同一活动中移动数据

  •  -1
  • Trusted  · 技术社区  · 7 年前

    在我的应用程序中,我从昨天、今天和明天以字符串形式存储的Json中检索了一些数据,现在我需要的问题是这些数据将是我选项卡的标题。这一切都是同一个活动的一部分,我不能使用Intent或Bundle进行收发。

    ...other stuff
    
            @Override
            protected Void doInBackground(Void... arg0){
                HttpHandler sh = new HttpHandler();
                //faccio una richiesta al server e attendo risposta
                String jsonStr = sh.makeServiceCall(url); 
                Log.e("RAW-JSON: ","Retrieve RAW-Json is "+jsonStr);
    
                if (jsonStr != null) {
                    try {
                        JSONObject jsonObj = new JSONObject(jsonStr);
                        String DATESTRING = jsonObj.getString("date");
    
                        JSONObject DATE = new JSONObject(DATESTRING); //Log.d("STAMPA","DATESTRING"+DATESTRING);
    
                        //Log.d("PER FAVORE","IERI ERA "+Ieri);
                        //ESTRAGGO E INSERISCO DOVE MI SERVE
                        String Yesterday = DATE.getString("ieri");
                        String Today = DATE.getString("oggi");
                        String Tomorrow = DATE.getString("domani");
                    } catch (JSONException e) {
                        runOnUiThread(new Runnable(){
                            @Override
                            public void run(){
                                Toast.makeText(getContext(),"Errore nel recupero dati",Toast.LENGTH_LONG).show();
                            }
                        });
                        e.printStackTrace();
                    }
                }
    
                return null;
            }
            @Override
            protected void onPostExecute(Void result){
                super.onPostExecute(result);
                //tolgo il caricamento di pDialog
                if (pDialog.isShowing())
                    pDialog.dismiss();
            }
        }
    
        private void setupViewPager(ViewPager viewPager) {
            ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
            adapter.addFragment(new YesterdayFragment(),Yesterday );  //i can set from here the name of tabs but how if the name from by Json?
            adapter.addFragment(new TodayFragment(), Today);
            adapter.addFragment(new TomorrowFragment(), Tomorrow);
            viewPager.setAdapter(adapter);
        }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Sachin Rajput KgaboL    7 年前

    您需要在类级范围中声明变量。 在类内部、任何方法或代码块外部定义,

      String Yesterday , Today , Tomorrow = " ; //Define inside your class , outside of any method or code block,
    
            @Override
            protected Void doInBackground(Void... arg0){
                HttpHandler sh = new HttpHandler();
                //faccio una richiesta al server e attendo risposta
                String jsonStr = sh.makeServiceCall(url); 
                Log.e("RAW-JSON: ","Retrieve RAW-Json is "+jsonStr);
    
                if (jsonStr != null) {
                    try {
                        JSONObject jsonObj = new JSONObject(jsonStr);
                        String DATESTRING = jsonObj.getString("date");
    
                        JSONObject DATE = new JSONObject(DATESTRING); //Log.d("STAMPA","DATESTRING"+DATESTRING);
    
                        //Log.d("PER FAVORE","IERI ERA "+Ieri);
                        //ESTRAGGO E INSERISCO DOVE MI SERVE
                        Yesterday = DATE.getString("ieri");
                        Today = DATE.getString("oggi");
                       Tomorrow = DATE.getString("domani");
                    } catch (JSONException e) {
                        runOnUiThread(new Runnable(){
                            @Override
                            public void run(){
                                Toast.makeText(getContext(),"Errore nel recupero dati",Toast.LENGTH_LONG).show();
                            }
                        });
                        e.printStackTrace();
                    }
                }
    
                return null;
            }
            @Override
            protected void onPostExecute(Void result){
                super.onPostExecute(result);
                //tolgo il caricamento di pDialog
                if (pDialog.isShowing())
                    pDialog.dismiss();
            }
        }
    
        private void setupViewPager(ViewPager viewPager) {
            ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
            adapter.addFragment(new YesterdayFragment(),Yesterday );  //i can set from here the name of tabs but how if the name from by Json?
            adapter.addFragment(new TodayFragment(), Today);
            adapter.addFragment(new TomorrowFragment(), Tomorrow);
            viewPager.setAdapter(adapter);
        }