2011-02-16 116 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