Java 如何将解析后的XML数据插入到TextView中
目前,我的解析器解析数据并将其存储在一个可以轻松显示的listView中 不过,我想使用textView来显示这些数据,但我不确定如何显示 下面是使用listview工作的代码:Java 如何将解析后的XML数据插入到TextView中,java,android,xml,parsing,textview,Java,Android,Xml,Parsing,Textview,目前,我的解析器解析数据并将其存储在一个可以轻松显示的listView中 不过,我想使用textView来显示这些数据,但我不确定如何显示 下面是使用listview工作的代码: public class StatisticsScreen extends ListActivity{ private List<Message> messages; ListView lv; @Override public void onCreate(Bundle savedInstanceState
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的
setText()
方法。如果您想要类似HTML的格式,您会发现android.text.HTML.fromHtml()
方法很有用。您的代码无法工作,因为您总是用最后的信息替换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);
}
}
}
嘿,我在那里更新了我的帖子,你能再看一下吗?还有,在上面的方法中,我是用这个替换loadFeed()还是如何使用它?谢谢RonanFixed!谢谢你的意见,罗南。我明白你的意思。再次谢谢你能看看我的编辑吗?这可能会澄清我想要如何构造数据..RonanFixed!谢谢你的意见。
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);
}
}
}