2017-10-16 6 views
0

Le problème est que lorsque je sélectionne une université, le nom est défini dans la saisie de texte saisie semi-automatique. Mais je suis également pour leurs ids qui sont extraites du serveur paire de valeurs clé:Comment obtenir les deux données (ID, nom) de l'élément sélectionné à partir de la saisie semi-automatique lorsque les données sont extraites du serveur

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

Je veux que ce u_id aussi bien avec name. Mais je ne reçois que ce nom. J'ai besoin du u-id pour d'autres objectifs.

Comment puis-je obtenir cette identification également?

Voici le code pour aller chercher 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(); 
     } 
    } 
} 

ici est mon code 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

Eh bien, vous manquez un peu de code pour nous d'y répondre complètement. 'getJsonFromGetMethod' et votre modèle Gson ainsi que' fetchCollegeFromServerByUniversityName' –

Répondre

0

Le fait que vous n'avez university.getUniversityName() ajouté à l'adaptateur signifie que vous ne serez pas en mesure de extrait l'identifiant.

Vous devriez faire un ArrayAdapter<University> et mettre en œuvre une méthode toString dans la classe Université qui renvoie le nom (et éventuellement l'ID, si vous voulez le voir)

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

Mais quand j'extrais à la fois les données alors comment puis-je obtenir ces données – Deepak

+0

Extraire et obtenir sont la même chose ... Si vous avez ajouté l'objet de l'université entière au lieu de seulement chaîne de nom, vous pouvez obtenir toutes les données qui lui sont associées –

+0

Quelqu'un peut-il m'aider à faire le code pour sortir à la fois l'université et univ id et définir cela dans autocomplete textview – Deepak