由于我是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);
}
}
感谢
答案 0 :(得分:0)
你在这里使用静力学是非常不合适的。最好在您的Activity生命周期中执行此操作,例如在onCreate中。有点难以看到你发布的代码发生了什么,但尝试将url通过应用程序传递到你实际使用它的地方,并摆脱所有的静态。