[英]sharedPreferences in listView
我想从sharefPreferenc中的数组中获取一个数组,但是它无法恢复值! 请看我的代码,告诉我什么地方错了?
这是我的Prefs.java
public class Prefs extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
Random rnd = new Random();
int[] cartridgeColor = new int[181];
for (int i = 0; i <= 180; i++) {
int aaa = rnd.nextInt(13);
String name = "cartridgeColor" + String.valueOf(i);
cartridgeColor[i] = prefs.getInt(name, aaa);
}
}
}
这是我的活动,希望能从爱好中获得
public class GamesListActivity extends ListActivity {
SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.games_list);
setListAdapter(new AA());
sp = getSharedPreferences("Prefs", MODE_PRIVATE);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
}
class AA extends ArrayAdapter<String> {
public AA() {
super(GamesListActivity.this, R.layout.games_list_layout, Resources2.GameListArray);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if (row == null) {
LayoutInflater inflater = getLayoutInflater();
row = inflater.inflate(R.layout.games_list_layout, parent, false);
}
TextView GameName = (TextView) row.findViewById(R.id.textView1);
ImageView GamePic = (ImageView) row.findViewById(R.id.imageView1);
ImageView Cartridge = (ImageView) row.findViewById(R.id.imageView2);
int[] CartridgesColorArray = new int[181];
for (int i = 0; i <= 180; i++) {
String name = "cartridgeColor" + String.valueOf(i);
CartridgesColorArray[i] = (sp.getInt(name, 1));
}
GameName.setText(Resources2.GameListArray[position]);
GamePic.setImageResource(Resources2.GamePicArray[position]);
Cartridge.setImageResource(Resources2.CartridgeFrame[CartridgesColorArray[position]]);
return row;
}
}
}
这是我的另一堂课
public class Resources2 {
public static String[] GameListArray = { "Super Mario Bros1", "Battle City", "Contra", "TinyTon", "Tmnt3 Manhattan Project" };
public static int[] GamePicArray = { R.drawable.g1, R.drawable.g2, R.drawable.g3, R.drawable.g4, R.drawable.g5 };
public static int[] CartridgeFrame = { R.drawable.micro_cart_01, R.drawable.micro_cart_02, R.drawable.micro_cart_03, R.drawable.micro_cart_04, R.drawable.micro_cart_05, R.drawable.micro_cart_06, R.drawable.micro_cart_07, R.drawable.micro_cart_09, R.drawable.micro_cart_10, R.drawable.micro_cart_11, R.drawable.micro_cart_12, R.drawable.micro_cart_01, R.drawable.micro_cart_01, R.drawable.micro_cart_01 };
}
一切正常,没有任何错误!
我发现上面的代码片段有两个错误。
我没有看到任何关于SharedPreferences的文章。 您应该阅读SharedPreferences.Editor
假设您已经在执行此操作,则需要确保您正在读取和写入同一文件。 PreferenceManager.getDefaultSharedPreferences(this)
和getSharedPreferences("Prefs", MODE_PRIVATE)
不指向同一文件,因此您需要进行更正。
一些其他提示:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.