ANDROID SAX Parser问题

时间:2011-02-21 13:39:18

标签: android saxparser

由于我是java编程新手,我需要一些帮助。我坚持这个问题,直到我开始工作才能继续。

我正在尝试从包含首选项int的字符串中创建一个字符串。我保存了数据并可以显示int(只是示例代码):

SharedPreferences prefs=PreferenceManager
        .getDefaultSharedPreferences(this);

    list.setText(prefs.getString("list", "22"));

现在,我有一个xml解析器,它正确地将URL作为静态字符串拉出来:

public static String feedUrl = String.format("http://www.freshpointmarketing.com/iphone/objects/XML/AND.php?ID=%d", 22);

效果很好......

现在我的问题......

我需要让首选项“int”成为字符串中的变量,从而使它不是静态的。

static SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(this);

static int myVariable = prefs.getInt("list1", 22);

public static String feedUrl = String.format("http://www.freshpointmarketing.com/iphone/objects/XML/AND.php?ID=%d", myVariable);

如果我取出所有静态引用,我会收到错误:

    private void loadFeed(ParserType type){
    try{
        FeedParser parser = FeedParserFactory.getParser(type);
        long start = System.currentTimeMillis();
        messages = parser.parse();
        long duration = System.currentTimeMillis() - start;
        Log.i("AndroidNews", "Parser duration=" + duration);
        String xml = writeXml();
        Log.i("AndroidNews", xml);
        List<String> titles = new ArrayList<String>(messages.size());
        for (Message msg : messages){
            titles.add(msg.getTitle());
        }
        ArrayAdapter<String> adapter = 
            new ArrayAdapter<String>(this, R.layout.row,titles);
        this.setListAdapter(adapter);
    } catch (Throwable t){
        Log.e("AndroidNews",t.getMessage(),t);
    }
}

感谢

1 个答案:

答案 0 :(得分:0)

你在这里使用静力学是非常不合适的。最好在您的Activity生命周期中执行此操作,例如在onCreate中。有点难以看到你发布的代码发生了什么,但尝试将url通过应用程序传递到你实际使用它的地方,并摆脱所有的静态。