Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将解析后的XML数据插入到TextView中_Java_Android_Xml_Parsing_Textview - Fatal编程技术网

Java 如何将解析后的XML数据插入到TextView中

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

目前,我的解析器解析数据并将其存储在一个可以轻松显示的listView中

不过,我想使用textView来显示这些数据,但我不确定如何显示

下面是使用listview工作的代码:

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);
    }
  }
}