2016-07-28 4 views
-1

私は2つのアクティビティを持っています.2つのアクティビティが同じデータをサーバからスピナにロードしました。両方のアクティビティが適切に読み込まれます。スピナアイテムの位置他のアクティビティに切り替えるときも同じスピナーのアイテムを表示します。2つの異なるアクティビティの両方のスピナーを同期させる方法。両方の活動において2種類のアクティビティのアンドロイドスピナを同期させる方法

private class BackTask extends AsyncTask<Void,Void,Void> { 
    ArrayList<String> list; 
    protected void onPreExecute(){ 
     super.onPreExecute(); 
     list=new ArrayList<>(); 
    } 
    protected Void doInBackground(Void...params){ 
     InputStream is=null; 
     String result=""; 
     try{ 
      HttpClient httpclient=new DefaultHttpClient(); 
      HttpPost httppost= new HttpPost("http://my_url/Service.asmx/GetServiceList"); 
      HttpResponse response=httpclient.execute(httppost); 
      HttpEntity entity = response.getEntity(); 
      // Get our response as a String. 
      is = entity.getContent(); 
     }catch(IOException e){ 
      e.printStackTrace(); 
     } 

     //convert response to string 
     try{ 
      BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8")); 
      String line = null; 
      while ((line = reader.readLine()) != null) { 
       result+=line; 
      } 
      is.close(); 
      //result=sb.toString(); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
     // parse json data 
     try{ 
      JSONArray jArray =new JSONArray(result); 
      for(int i=0;i<jArray.length();i++){ 
       JSONObject jsonObject=jArray.getJSONObject(i); 
       // add interviewee name to arraylist 

       list.add(jsonObject.getString("ServiceName")); 

     } 
    } 
    catch(JSONException e){ 
     e.printStackTrace(); 
    } 
    return null; 
} 
protected void onPostExecute(Void result){ 
    listItems.addAll(list); 
    adapter.notifyDataSetChanged(); 
} 

} 

答えて

0
public class StaticResources 
{ 
    private List<String> sDataSource = new ArrayList<String>(); 
    public List<String> getDataSource() {...} 
    public void setDataSource(..) {...} 
} 

StaicResources.getDataSource()を参照し、それはそれです。

+0

私のコードでこれを使用する方法を教えてください。 – Adi

+0

これは既に非常に明確です。StaicResources.getDataSource()を使用してデータを入力し、それをどこからでも使用できます(2つのアクティビティを含む)。 – David

+0

私は自分が望むものを理解することができますが、データの集まりに問題はありません。 – Adi

0

このよう

のpublic staticのArrayList listid、listDataプロパティを試してみてください。

onPostExecute()あなたがのために別のクラス

にlistid、listDataプロパティの配列リストにアクセスする必要があり、その後、別のアクティビティ同じスピナーのデータが必要な場合は、{

try{ 
JSONArray jarrvideos=new JSONArray(responcedata); 
    for(int i=0;i<jarrvideos.length();i++){ 
      JSONObject jobj = jarrvideos.getJSONObject(i); 

      listid.add(jobj.getString("id")); 
      listdata.add(jobj.getString("id")); 
     } 

BindSpinnerData(); 

    }catch(Exception e){ 
    e.printStackTrace(); 
    } 
} 


private void BindSpinnerData() { 
ArrayAdapter<String> spinnerLocation = new 
    ArrayAdapter<String(MedicalSurgical.this, R.layout.spinneritem, listdata); 
    spinnerLocation.setDropDownViewResource(R.layout.spinnerpopupblack); 
    spnDatasecond.setAdapter(spinnerLocation); 
} 

今それはあなたの最初の活動dpinnerデータが表示されますclassname.listidまたはclassname.listdataへのアクセス

+0

私は既に私のスピナーのデータを入力しています – Adi

+0

問題は他のアクティビティのスピナーのthieirポジションにアクセスする方法です – Adi

+0

スピナー選択アイテムIDと名前を取得して2番目のアクティビティに進み、アダプタをスピナーに設定し、あなたはすでにあなたの最初の活動に入っています。これがあなたに役立つかもしれません。 – Amitsharma

関連する問題