【问题标题】:display data in seperate columns in list [duplicate]在列表的单独列中显示数据[重复]
【发布时间】:2012-01-13 04:48:11
【问题描述】:

可能重复:
nullPointerException in multi column list

我有以下应用程序,它从 URL 获取数据并显示它。

问题是我得到了列表中的输出,其中包含不同的行。

现在我想将行数据分成 4 列,如下所示。

SBIN ;1911.05;1886.85;1.28 应在 1 行内显示为 4 列(由 ';' 分隔),而不是单个元素。请参阅此屏幕截图以供参考:

ReadWebPageAsyncTask.java

public class ReadWebpageAsyncTask extends Activity {
    private EditText ed;
    private ListView lv;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ed = (EditText) findViewById(R.id.ed);
        lv = (ListView) findViewById(R.id.list);
        DownloadWebPageTask task = new DownloadWebPageTask();
        task.execute(new String[] { "http://abc.com/default.aspx?id=G" });
    }

    private class DownloadWebPageTask extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... urls) {
            String response = "";
            for (String url : urls) {
                DefaultHttpClient client = new DefaultHttpClient();
                HttpGet httpGet = new HttpGet(url);
                try {
                    HttpResponse execute = client.execute(httpGet);
                    InputStream content = execute.getEntity().getContent();

                    BufferedReader buffer = new BufferedReader(
                            new InputStreamReader(content));
                    String s = "";
                    while ((s = buffer.readLine()) != null) {
                        response += s;
                    }

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return response;
        }

        @Override
        protected void onPostExecute(String result) {
            int sub = result.lastIndexOf('@', result.length() - 1);
            String s1 = result.substring(0, sub);
            String s = s1.replace(";", " - ");
            String arr[] = s.split("@");    
            lv.setAdapter(new ArrayAdapter<String>(ReadWebpageAsyncTask.this,
                    android.R.layout.simple_list_item_1, arr));
        }
    }
}

请检查此链接

nullPointerException in multi column list


以这种方式使用多列列表非常忙碌。相反,我尝试了this,它成功了..

【问题讨论】:

  • 用tableView能做到吗?
  • 你试过多列列表视图吗?
  • 您可以创建 customView 为每一行在 customview 中声明 4 个 textview 并在该 textViews 中设置您的数据
  • @ user370305 - 你能给我简要介绍一下如何做到这一点吗?我不想单独处理一行的每个元素。我只想以适当的格式显示它们。
  • @bindal - 你说的是表格布局,对吧?但是如何在每个表行的 4 列中插入数据呢?

标签: android string list


【解决方案1】:

使用android表格布局

Reference

【讨论】:

  • 但是然后在每个表行的 4 列中的每一列中插入数据我猜会很头疼...
  • 这种方式使用多列列表非常忙碌。相反,我尝试了stackoverflow.com/questions/8411101/…,它起作用了。使用当前方法的问题是每次调用 getView() 方法时变量位置的值仅增加 1,而在我的情况下,我有 4 列,所以理想情况下它应该增加ny 4 而不是 1。即使我尝试将位置增加 4,它也会跳过一些中间数据。所以更好的方法是使用hashmap。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-28
  • 2023-04-03
  • 2021-08-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多