我需要在应用程序启动时设置消息,我从数据库中获取。我从数据库中获取数据,需要在应用程序启动时显示它,但它只显示“msg0” 我不明白我的代码中的问题在哪里。请给我一些提示和参考 这是我的参考代码..
Random r = new Random();
SharedPreferences pref = getPreferences(Context.MODE_PRIVATE);
Editor ed =pref.edit();
final List<ObjectiveWiseQuestion> LocWiseProfile= db.getAllTipsNTricks();
for (final ObjectiveWiseQuestion cn : LocWiseProfile)
{
for( i=0;i<=counter;i++)
{
ed.putString("i",cn.getTips());
// ed.putString("0",cn.getTips());
}
ed.commit();
}
String msg = pref.getString(r.nextInt(i)+"", "none");
Toast.makeText(this, msg, Toast.LENGTH_LONG ).show();
}
catch(Exception e)
{
e.printStackTrace();
}
提前致谢....
答案 0 :(得分:0)
如果我没有错,那么你就是在共享偏好编辑器中编写值。
应该是,
for( i=0;i<=counter;i++)
{
ed.putString(""+i,cn.getTips());
// ed.putString("0",cn.getTips());
}
答案 1 :(得分:0)
值正在被覆盖,所以请遵循user370305的方式,但是仍然存在一些问题,问题是由于您正在获取首选项的值,如String msg = pref.getString(r.nextInt(i)+“”,“没有”);在for for循环之外,所以我假设我已经在for循环之外被声明,这在任何地方都没有被改变,所以外循环只会显示i值,这是在你提供的块之外声明的,我认为是班级的领域