2017-10-16 77 views
0

中取出的問題是,當我選擇任何一所大學,我得到了名的自動完成設置TextView的。但是,我還期待着它們的ID這是從服務器獲取的鍵值對:如何從自動完成的TextView所選項目的兩個數據(ID,姓名),當數據從服務器

"u_id": "1","university_name": "RGPV"` 

我想這u_id以及與name。但我只是得到這個名字。我需要u-id作進一步的用途。

我如何獲得這個ID呢?

這裏是獲取JSON

class FetchUniversitytask extends AsyncTask<Void,Void ,String> { 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 

     /* progressDialog = new ProgressDialog(ActivitySignUp.this); 
     progressDialog.setIndeterminate(true); 
     progressDialog.setMessage("Please Wait..."); 
     progressDialog.show();*/ 

     linearLayout.setVisibility(View.VISIBLE); 
     ObjectAnimator flip = ObjectAnimator.ofFloat(imgSpoon, "rotationY", 0f, 180f); 
     flip.setDuration(800); 
     flip.setRepeatCount(Animation.INFINITE); 
     flip.start(); 
    } 

    @Override 
    protected String doInBackground(Void... params) { 
     String result = WebServiceUtil.getInstance(ActivitySignUp.this).getJsonFromGetMethod(URLconstant.UNIVERSITY); 
     return result; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 
     //progressDialog.dismiss(); 
     linearLayout.setVisibility(View.INVISIBLE); 

     if (null != result) { 
      try { 
       final Universitydata univHolder = new Gson().fromJson(result, Universitydata.class); 
       if (null != univHolder) { 
        // Log.d("uninholder", "" + univHolder.toString()); 
        // Toast.makeText(ActivitySignUp.this, univHolder.toString(), Toast.LENGTH_SHORT).show(); 
        Universitylist = new ArrayList<>(); 
        for (University university : univHolder.getData()) { 
         if (!university.getUniversityName().isEmpty()) { 
          Universitylist.add(university.getUniversityName()); 

         } 
        } 
        if (Universitylist.size() > 0) { 
         /* universityAdapter = new ArrayAdapter<String>(ActivitySignUp.this, R.layout.spinner_item, Universitylist); 
          universityAdapter.setDropDownViewResource(R.layout.spinner_itemforchild);*/ 
         sadapter = new ArrayAdapter<String>(ActivitySignUp.this, android.R.layout.simple_dropdown_item_1line, Universitylist); 
         suuniversity.setThreshold(1);//will start working from first character 
         suuniversity.setAdapter(sadapter);//setting the adapter data into the AutoCompleteTextView 
         suuniversity.setTextColor(getColor(R.color.colorPrimary)); 
         suuniversity.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
          @Override 
          public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
           Log.d("univ", String.valueOf(adapterView.getItemAtPosition(i))); 
           Log.d("univ", String.valueOf(adapterView)); 
           String data = (String)adapterView.getItemAtPosition(i); 
           int realPosition = Universitylist.indexOf(data); 
           University un = new University(); 
           un.getUId(); 
           u_id = String.valueOf(realPosition+1); 
           Log.d("univ_id",u_id); 
           fetchCollegeFromServerByUniversityName(u_id); 
          } 
         });      
        } 
       } else { 
        Toast.makeText(ActivitySignUp.this, "Something not right 1", Toast.LENGTH_SHORT).show(); 
       } 
      } catch (JsonSyntaxException e) { 
       e.printStackTrace(); 
       Toast.makeText(ActivitySignUp.this, "Something not right 2", Toast.LENGTH_SHORT).show(); 
      } 
     } else { 
      Toast.makeText(ActivitySignUp.this, "Something not right 3", Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 

這裏的代碼是我的JSON代碼

{ 
"data": [ 
    { 
     "u_id": "1", 
     "university_name": "RGPV" 
    }, 
    { 
     "u_id": "2", 
     "university_name": "Samrat Ashok Technological Institute, Vidisha" 
    }, 
    { 
     "u_id": "3", 
     "university_name": "Jabalpur Engineering College" 
    }, 
    { 
     "u_id": "4", 
     "university_name": "Rewa Engineering College" 
    }, 
    { 
     "u_id": "5", 
     "university_name": "University Institute of Technology, Shahdol\t" 
    }, 
    { 
     "u_id": "6", 
     "university_name": "Indira Gandhi Engineering College, Sagar" 
    }, 
    { 
     "u_id": "7", 
     "university_name": "Ujjain Engineering College" 
    }, 
    { 
     "u_id": "8", 
     "university_name": "Shri Govindram Seksaria Institute of Technology and Science (SGSITS), Indore" 
    }, 
    { 
     "u_id": "9", 
     "university_name": "University Institute of Technology, Jhabua" 
    }, 
    { 
     "u_id": "10", 
     "university_name": "Madhav Institute of Technology & Science, Gwalior" 
    }, 
    { 
     "u_id": "11", 
     "university_name": "University Institute of Technology, Bhopal" 
    } 
] 

} 
+0

嗯,你錯過了一些代碼我們完全回答這個問題。 'getJsonFromGetMethod'和你GSON模型以及'fetchCollegeFromServerByUniversityName' –

回答

0

您只有university.getUniversityName()添加到適配器,這意味着你將不能提取ID。

您應該作出ArrayAdapter<University>和實施中返回名稱大學類toString方法(和可選的ID,如果你想看到它)

List<University> universities = new ArrayList<>(); 
ArrayAdapter<University> adapter = new ArrayAdapter<>(ActivitySignUp.this, R.layout.universiry_dropdown_layout, universities); 

suuniversity.setAdapter(adapter); 
adapter.setDropDownViewResource(R.layout.spinner_itemforchild); 

for (University university : univHolder.getData()) { 
    if (!university.getUniversityName().isEmpty()) { 
     adapter.add(university); 
    } 
} 
+0

但是,當我同時提取數據,然後我應該怎麼獲得這些數據 – Deepak

+0

提取並得到都是一樣的東西。如果你增加了整個大學的對象,而不是隻名稱字符串,就可以得到與它相關聯的所有數據 –

+0

任何人可以幫助我在做的代碼,用於取出兩所大學和大學的ID,並設置在自動完成的TextView – Deepak

相關問題