2011-12-05 3 views
0

可能性の重複:
nullPointerException in multi column list表示データ

私はURLからデータを取得し、それを表示するアプリを次しています。

問題は、さまざまな行で構成されるリストの出力を取得することです。

ここでは、行データを以下のように4つの列に分割したいと考えています。

SBIN ;1911.05;1886.85;1.28は、1つの要素ではなく1つの列内に4列( ';'で区切って)で表示する必要があります。参考のために、このスクリーンショットを参照してください。

Screenshot of the app

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を試してみました、それが働いた。..

+0

は、それがのtableViewを使用して行うことができますか? – GAMA

+0

マルチカラムリストビューを試しましたか? – user370305

+0

Creat customViewを作成することができます。各行について、customviewで4つのtextviewを宣言し、そのtextViewsにデータを設定します。 – bindal

答えて

1

利用アンドロイドテーブルレイアウト

Reference

+0

しかし、各テーブル行の4つの列のそれぞれにデータを挿入すると頭がおかしくなります。 – GAMA

+0

これはマルチカラムリストを使って非常に忙しいです。代わりに、私はhttp://stackoverflow.com/questions/8411101/nullpointerexception-in-multi-column-list-using-hashmapを試して、それが働いた.. 現在のアプローチを使用して問題は、可変位置の値は1だけ増加するgetView()メソッドが呼び出されるたびに私は4つの列を持つので、理想的にはny 4でなく1でなければなりません。 位置を4ずつインクリメントしようとしても、中間データはスキップされます。 より良いアプローチは、ハッシュマップを使用することです。 – GAMA