私はURLからデータを取得し、それを表示するアプリを次しています。
問題は、さまざまな行で構成されるリストの出力を取得することです。
ここでは、行データを以下のように4つの列に分割したいと考えています。
SBIN ;1911.05;1886.85;1.28
は、1つの要素ではなく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を使用して行うことができますか? – GAMA
マルチカラムリストビューを試しましたか? – user370305
Creat customViewを作成することができます。各行について、customviewで4つのtextviewを宣言し、そのtextViewsにデータを設定します。 – bindal