2016-08-11 109 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