2017-10-03 1 views
-2

[SOLVED] 여기에 작은 도움이 필요합니다. 2 개의 문자열을 포함하는 ArrayAdapter가 있는데 사용자에게 ArrayAdapter의 첫 번째 부분을 보여주고 싶습니다. 사용자가 특정 항목을 클릭하면 특정 항목의 ID를 가져 와서 게시하려고합니다. 아래 그림에서 볼 수 있듯이 JAVA를 사용자에게 보여주고 사용자가 버튼을 클릭 할 때 JAVAs ID를 보내려고합니다.ArrayAdapter - 두 개의 문자열을 분할

enter image description here

코드 :

private class getSkillsList extends AsyncTask<String, Void, Void> { 

    private String dataFetchedFromURL = ""; 

    @Override 
    protected Void doInBackground(String... skillListURL) { 

     try { 
      String newUrl = skillListURL[0]; 
      URL url = new URL(newUrl); 
      HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); 
      InputStream inputStream = httpURLConnection.getInputStream(); 
      BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); 
      String line = ""; 
      while (line != null) { 
       line = bufferedReader.readLine(); 
       dataFetchedFromURL = dataFetchedFromURL + line; 
      } 
      System.out.print("DATA: " + dataFetchedFromURL); 
      JSONArray root = new JSONArray(dataFetchedFromURL); 
      skillList = new ArrayList<String>(); 
      for (int i = 0; i < root.length(); i++) { 
       JSONObject jsonObjectHoldingCountries = root.getJSONObject(i); 
HashMap<String, Integer> skillsMap = new HashMap<>();     
skillsMap.put(jsonObjectHoldingCountries.optString("lookupValue"), jsonObjectHoldingCountries.getInt("lookupValueId")); 
      } 
     } catch (IOException | JSONException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void aVoid) { 
     super.onPostExecute(aVoid); 
ArrayAdapter<String> adapter; 
     for(int i=0; i<skillsMap.size();i++){ 
      skillList.add(String.valueOf(skillsMap.get(i))); 
     } 
      adapter = new ArrayAdapter<String>(Skills.this, android.R.layout.simple_list_item_1, skillList); 
     acSkillTextView.setAdapter(adapter); 
    } 
} 

1 UPDATE :

지금 난 내 코드를 업데이트 첫 번째 키의 HashMap에서 JSON 응답을 저장했다가 문자열이고 값은 정수입니다. 그리고 내가 그 Hashmap을 post 실행 메소드에서 어댑터에 추가하려고하면 autocompletetext 드롭 다운에 NULL이 표시됩니다.

2 업데이트 :

내 용액을 얻었다

, I는 제는 HashMap로 내 수신 된 데이터를 삽입하고 해시 맵에서 난 배열로 키 값을 삽입 어댑터를 사용하는 드롭에 해당 배열을 표시. 건배! 고마워요 :)

+0

코드를 게시하십시오. –

+0

@NabinBhandari가 추가되었습니다. – KhanStan99

답변

1

그냥 name으로 이름과 ID 및 배열 hashmap보십시오. 위치에 따라 당신은 당신의 아이디를 hashmap에서 얻을 수 있습니다.

내가 설명해 드리겠습니다.

hashmap.put("java","350"); 
hashmap.put("c++","351"); 

지금 현재 위치없는 한 선택에, 당신은 각각의 ID를 얻을 수있는 데이터

array.add("java"); 
array.add("c++"); 

의 배열을합니다.

+0

API JSON 응답에서이 데이터가 나타납니다. – KhanStan99

+1

문제 없습니다. 괜찮아 . 데이터 응답을 성공적으로 수신하면 해시 맵을 만들 수 있습니다. 그 후에 배열 어댑터를 설정하십시오. –

+0

감사합니다. 시도 할 것입니다. – KhanStan99

관련 문제