【问题标题】:Mapping each row of database to each row of listview将数据库的每一行映射到列表视图的每一行
【发布时间】:2013-04-30 05:28:20
【问题描述】:

我想将每个数据库添加到列表视图的每一行... 实际上我的问题是我能够从数据库中获取数据,但它没有正确显示在列表视图中 我的代码是:

try
    {           
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://10.0.2.2/meetingschedular/fetchmeet.php?uid="+vwname.getText().toString());
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        is = entity.getContent();   
        }
        catch(Exception e)
        {
            Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show();
        }

        //Convert response to string
        try
        {
            BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"));
            sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null)
                {
                    sb.append(line + "\n");

                }
                is.close();
                result = sb.toString();                 
        }
        catch(Exception e)
        {
            Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show();
        }
        //END Convert response to string

            try
            {               
                JSONArray jArray =  new JSONArray(result);

                    for(int i=0;i<jArray.length();i++)
                    {   
                        JSONArray innerJsonArray = jArray.getJSONArray(i);
                        JSONObject json_data = innerJsonArray.getJSONObject(0);                          
                        String at1=json_data.getString("title");
                        String at= json_data.getString("mdate");
                        String at2=json_data.getString("mtime");
                        String at3=json_data.getString("venue");
                        String at4=json_data.getString("organiser");
                        s.append("\nTitle:"+at1);
                        s.append("\ndate:"+at);
                        s.append("\nTime:"+at2);
                        s.append("\nVenue:"+at3);
                        s.append("\nOrganiser:"+at4);                       
                        r.add(s.toString());                            
                    }

                l.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, r));}

它是这样显示的

我想单独显示每一行。所有行都显示在一行中。请帮帮我..

【问题讨论】:

    标签: android mysql android-widget android-listview


    【解决方案1】:

    添加

    s = new StringBuilder();
    

    在for循环开始

    【讨论】:

    • 我已经完成了但没有用,数据库的所有行都显示在单个列表视图行中。
    • 编辑将sb 更改为s。尝试为变量使用良好的命名。每次循环运行时,您当前的代码都会附加s,因此您需要重新初始化变量s。如果您更改了代码中的任何内容,请更新问题
    【解决方案2】:

    尝试在您的列表视图中添加此行:(您可能无法在列表视图中看到分隔符)

    android:divider="#000000"
    android:dividerHeight="0.5dp"
    android:cacheColorHint="@android:color/transparent"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 2020-05-11
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-21
      相关资源
      最近更新 更多