2011-02-16 114 views
2

此刻,我的解析器解析數據並將其存儲在可輕鬆顯示的listView中。如何將解析的XML數據插入到TextView中

但是我想用textView來顯示這些數據,但我不知道如何。

下面是一個使用列表視圖,工程代碼:

public class StatisticsScreen extends ListActivity{ 

private List<Message> messages; 
ListView lv; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.statisticsscreen);  
    loadFeed();    
    lv = (ListView) findViewById(android.R.id.list); 

    private void loadFeed() { 
    try{ 
     BaseFeedParser parser = new BaseFeedParser(); 
     messages = parser.parse(); 
     List<String> titles = new ArrayList<String>(messages.size()); 
     for (Message msg : messages){ 
      titles.add(msg.getTemperature()); 
      titles.add(msg.getRain()); 
      titles.add(msg.getWind()); 
     } 
     ArrayAdapter<String> adapter = 
      new ArrayAdapter<String>(this, R.layout.xmldatarow,titles); 
     getListView().addHeaderView(View.inflate(this, R.layout.xmllayout, null)); 
     this.setListAdapter(adapter); 
    } catch (Throwable t){ 
     Log.e("AndroidNews",t.getMessage(),t); 
    }  
} 

所以就像我說的這種完美的作品,但我想用一個TextView,而不是一個ListView存儲/顯示數據的..

有什麼建議嗎?

編輯:這裏是解決方案

下面是更新後的代碼,現在的工作:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.statisticsscreen);   
    tv = (TextView) findViewById(R.id.xmltextview);  
    tv1 = (TextView) findViewById(R.id.xmltextview1); 
    tv2 = (TextView) findViewById(R.id.xmltextview2); 
    loadFeed(); 

    private void loadFeed() { 
     try{ 
     BaseFeedParser parser = new BaseFeedParser(); 
     messages = parser.parse(); 
     for (Message msg : messages){ 
      tv.setText(msg.getTemperature()); 
      tv1.setText(msg.getRain()); 
      tv2.setText(msg.getWind()); 
     }   
     } catch (Throwable t){ 
     Log.e("Weather",t.getMessage(),t); 
     }  
    } 
} 

回答

2

你的代碼無法工作,因爲你總是用最後的按摩信息替換你的textview。你應該這樣做:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.statisticsscreen);   
    tv = (TextView) findViewById(R.id.xmltextview);  
    loadFeed(); 

    private void loadFeed() { 
    try { 
     BaseFeedParser parser = new BaseFeedParser(); 
     messages = parser.parse(); 
     StringBuilder builder = new StringBuilder(); 
     for (Message msg : messages){ 
     builder.append(msg.getTemperature()); 
     builder.append(","); 
     builder.append(msg.getRain()); 
     builder.append(","); 
     builder.append(msg.getWind()); 
     builder.append("\n"); 
     } 
     tv.setText(builder.toString()); 
    } catch (Throwable t){ 
     Log.e("AndroidNews",t.getMessage(),t); 
    } 
    } 
}  
1

你需要以某種方式來格式化數據,然後使用TextView中的setText()方法。如果你想要類似HTML的格式,你會發現android.text.Html.fromHtml()方法很有用。

+0

你能看看我的編輯?這可能會闡明我如何構建我的數據..羅南 – mmmbaileys 2011-02-17 00:57:07

+0

固定!感謝您的輸入。 – mmmbaileys 2011-02-17 01:13:39