【发布时间】:2012-01-13 04:48:11
【问题描述】:
我有以下应用程序,它从 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 列中插入数据呢?