【问题标题】:How to insert parsed XML data in to a TextView如何将解析的 XML 数据插入到 TextView
【发布时间】:2011-02-16 23:16:16
【问题描述】:

目前我的解析器解析数据并将其存储在可以轻松显示的列表视图中。

但是我想使用 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);
      }       
    }
 }

【问题讨论】:

    标签: java android xml parsing textview


    【解决方案1】:

    您的代码无法工作,因为您总是用最后的按摩信息替换您的 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() 还是如何使用它?谢谢罗南
    • 已修复!感谢您的意见,罗南。
    • 我明白你的意思。再次感谢
    【解决方案2】:

    您需要以某种方式格式化您的数据,然后使用 TextView 的setText() 方法。如果您想要类似 HTML 的格式,您会发现 android.text.Html.fromHtml() 方法很有用。

    【讨论】:

    • 你能看看我的编辑吗?这可能会澄清我想如何构建我的数据..Ronan
    • 已修复!感谢您的意见。
    猜你喜欢
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 2010-12-17
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多