2016-08-11 153 views
1

我試圖在Volley的幫助下顯示從MySQL數據庫中檢索到的數據,並將其填充到ListView。 只要我嘗試了每種方法,我都無法做到。填充JSON數據到ListView

JsonArrayRequest req = new JsonArrayRequest(urlJsonArry, new Response.Listener<JSONArray>() { 
    @Override 
    public void onResponse(JSONArray response) { 
     Log.d("TAG", response.toString()); 

     try { 
      ArrayList<HashMap<String, String>> authorList = new ArrayList<>(); 
      for (int i = 0; i < response.length(); i++) { 
       JSONObject obj = (JSONObject) response.get(i); 
       String username  = obj.getString("username"); 
       String email   = obj.getString("email"); 
       String password  = obj.getString("password"); 

       usernameAll += "UserName: " + username + "\n\n"; 
       emailAll += "Email: " + email + "\n\n"; 
       passwordAll += "Password: " + password + "\n\n";      
     } 

正如我所檢索到的 '用戶名', '電子郵件' 和 '密碼' 我能成功myTextView.setText(usernameAll + " " + ..);顯示它在TextView。但現在我只想打印/填充「用戶名」中Simple ListView

HashMap<String, String> myData = new HashMap<>(); 
myData.put("justKey", usernameAll); 
adapter1 = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, android.R.id.text1, myData); 
listView.setAdapter(adapter1); 

當我需要一些Array並調用數組它的工作原理,但爲什麼myData不工作。你能幫我理解實際問題嗎? 我的下一步將是使用Custom ListView但現在我渴望「東西是如何工作

如果你糾正我解決這個問題的方法,我會很感激。

謝謝。

PS:我從安卓2.1.2工作室收到此錯誤:

Cannot resolve constructor 'ArrayAdapter(android.content.Context, int, int, java.lang.String)'

+0

什麼是您的listview適配器代碼?最簡單的做法是以誠實的方式開始使用自定義的listview,在這種情況下學習它的最好方法就是通用化,然後直接跳進去。當你說myData不起作用時,你的意思是什麼? usernameAll是否返回爲空?爲什麼不製作一個保存用戶名,電子郵件和密碼的用戶對象,並將它們存儲在數據結構中,當你在列表視圖中看到它時,顯示它們會更容易。 – Steeno

+0

Hello @Steeno!謝謝你的意見。那麼我被困在它,我不知道該怎麼做。其實這是我第一次嘗試。我的代碼最多爲String password = obj.getString(「password」);對我來說沒問題。另一個你向我建議。所以如果你告訴我該怎麼做會更有幫助? | 'usernameAll'不爲空,我可以在_TextView_上顯示它。但不能在ListView中。如果你想給我推薦任何其他的代碼,它會很棒。謝謝。 – fWd82

+0

我收到此錯誤:'無法解析構造函數'ArrayAdapter(android.content.Context,int,int,java.lang.String)''從這個語句:'adapter1 = new ArrayAdapter (getApplicationContext(),android.R .layout.simple_list_item_1,android.R.id.text1,usernameAll);' – fWd82

回答

1

你無法通過哈希映射到陣列適配器

https://developer.android.com/reference/android/widget/ArrayAdapter.html

把它轉換成列表中也提到了文件

//Code Getting Collection of values from HashMap 

Collection<String> values = myData.values(); 

//Creating an ArrayList of values 

ArrayList<String> listOfValues = new ArrayList<String>(values); 

有關詳細信息,請查看下面的鏈接 http://javaconceptoftheday.com/how-to-convert-hashmap-to-arraylist-in-java/

+0

啊哈!謝謝。看起來像是從'HashMap'轉換爲'List'對我來說有點困難。 |你可以/任何人都可以用'ArrayAdapter'中的一小段代碼片段來幫助我,我可以在'ListView'中顯示所有的值嗎?提前致謝。 – fWd82