2017-10-03 28 views
-2

[SOLVED] 私はここで小さな助けが必要です。 私は2つの文字列を含むArrayAdapterを持っています、私はArrayAdapterのユーザーの第1部を表示したい、そしてユーザーが特定の項目をクリックすると、その特定の項目のIDを取得して投稿します。 下の画像では、JAVAをユーザーに表示し、ユーザーがボタンをクリックしたときにJAVAs IDを送信したいと思っています。ArrayAdapter - 2つの文字列を分割

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 UPDATE:

私は私の解決策を持って、私は最初のHashMapに私のすべての受信データを挿入して、ハッシュマップから私は配列にキー値を挿入し、アダプタを使用してドロップダウンにその配列を表示します。乾杯!ありがとうございました:)

+0

コードを投稿してください。 –

+0

@NabinBhandariが追加されました。 – KhanStan99

答えて

1

ハッシュマップは名前とIDと配列だけの名前で試してみてください。あなたはあなたのIDをハッシュマップから得ることができます。

あなたを説明しましょう。

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

今の位置なし1を選択する上でのデータ今

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

の配列を作るには、それぞれのIDを取得することができます。

+0

API JSONレスポンスからこのデータを取得しています。 – KhanStan99

+1

問題ありません。大丈夫だよ 。データレスポンスの受信に成功した場合、ハッシュマップを作成することができます。それ以降にアレイアダプタを設定してください –

+0

よろしくお願いいたします。 – KhanStan99

関連する問題