[SOLVED] 私はここで小さな助けが必要です。 私は2つの文字列を含むArrayAdapterを持っています、私はArrayAdapterのユーザーの第1部を表示したい、そしてユーザーが特定の項目をクリックすると、その特定の項目のIDを取得して投稿します。 下の画像では、JAVAをユーザーに表示し、ユーザーがボタンをクリックしたときにJAVAs IDを送信したいと思っています。ArrayAdapter - 2つの文字列を分割
コード:
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に私のすべての受信データを挿入して、ハッシュマップから私は配列にキー値を挿入し、アダプタを使用してドロップダウンにその配列を表示します。乾杯!ありがとうございました:)
コードを投稿してください。 –
@NabinBhandariが追加されました。 – KhanStan99