保存和加载NSNumber(Saving and Loading NSNumber)
我在BlackJack游戏上工作,我很难找到使用NSNumbers和NSUserDefaults保存和加载名为PlayerMoney的int的正确方法。
这是我试图加载值的方式
-(void)createSceneContents { //Load --------------------------------------------------------- NSUserDefaults *Defaults = [NSUserDefaults standardUserDefaults]; NSNumber *PlayerMoneyLoad = [Defaults objectForKey:@"PlayerMoneySave"]; self.PlayerMoney = PlayerMoneyLoad; NSLog(@"PlayerMoneyLoad:%@", PlayerMoneyLoad); NSLog(@"PlayerMoney:%@", self.PlayerMoney);
这是我试图保存它的地方
//Save --------------------------------------------------------- NSUserDefaults *Defaults = [NSUserDefaults standardUserDefaults]; NSNumber *PlayerMoneySave = [NSNumber numberWithInt:self.PlayerMoney]; [Defaults setObject:PlayerMoneySave forKey:@"PlayerMoneySave"]; [Defaults synchronize];
在我添加线之前
self.PlayerMoney = PlayerMoneyLoad;
保存工作正常但在加载游戏时,“NSNumber PlayerMoneyLoad”不会将值传输到“int PlayerMoney”。 现在我已经添加了这一行,当游戏保存时,似乎在150000000左右选择一个随机数,任何帮助都是值得赞赏的。
Im working on a BlackJack game and I'm having trouble finding the correct way of saving and loading an int named PlayerMoney using NSNumbers and NSUserDefaults.
Here is how Im trying to load the Values
-(void)createSceneContents { //Load --------------------------------------------------------- NSUserDefaults *Defaults = [NSUserDefaults standardUserDefaults]; NSNumber *PlayerMoneyLoad = [Defaults objectForKey:@"PlayerMoneySave"]; self.PlayerMoney = PlayerMoneyLoad; NSLog(@"PlayerMoneyLoad:%@", PlayerMoneyLoad); NSLog(@"PlayerMoney:%@", self.PlayerMoney);
and here is where I try to save it
//Save --------------------------------------------------------- NSUserDefaults *Defaults = [NSUserDefaults standardUserDefaults]; NSNumber *PlayerMoneySave = [NSNumber numberWithInt:self.PlayerMoney]; [Defaults setObject:PlayerMoneySave forKey:@"PlayerMoneySave"]; [Defaults synchronize];
before I added the line
self.PlayerMoney = PlayerMoneyLoad;
Saving was working but upon loading the game the "NSNumber PlayerMoneyLoad" would not transfer the value to the "int PlayerMoney". Now that I've added this line, when the game saves it seems to pick a random number somewhere around 150000000 any help is appreciated.
原文:https://stackoverflow.com/questions/21494236
最满意答案
我只是想出了自己 - .-
对任何感兴趣的人
您必须从UI线程设置onRefreshComplete。 使用处理程序从onRefresh()内部.post。 < - 顺便说一下,它运行在一个单独的线程上。
祝你今天愉快。
I just figured it out myself -.-
For anyone interested:
You have to set onRefreshComplete from the UI Thread. Use a Handler to .post it from inside onRefresh(). <- which by the way runs on a separate thread.
Have a nice day.
相关问答
更多-
我找到了办法。 在我将适配器设置为listview之前,我创建了另一个与RssItem具有相同形式的listarray,因此我可以将适配器分配给此listarray。 稍后当我需要这个适配器时,我只需调用新的listarray,在这种情况下不会受到我添加到listview的标题的影响。 感谢njzk2关于将我的适配器保持为实例成员的评论。 解决方案如下所示: public void onItemClick(AdapterView> parent, View view, int position, ...
-
您没有将有效的Context传递给适配器, Fragment 不是 Context 。 例如,您需要使用Activity作为Context : setListAdapter(new MyListAdapter(getActivity(), proMenu)); 我希望你也在适配器中实现getCount()方法,否则你不会在ListView看到任何内容,无论你有多少元素。 You don't pass a valid Context to your adapter, a Fragment isn't a C ...
-
事实证明我在getCount()和getItem()方法中有错误的列表。 它知道与HashMap完美配合。 这是决赛 public class AutoCompleteAdapter extends BaseAdapter implements Filterable { List
testing = new ArrayList (); private Context mContext; private Map > mWords; publi ... -
Chris Banes PullToRefreshListView与自定义适配器错误(Chris Banes PullToRefreshListView with Custom Adapter Error)[2022-04-04]
我只是想出了自己 - .- 对任何感兴趣的人 您必须从UI线程设置onRefreshComplete。 使用处理程序从onRefresh()内部.post。 < - 顺便说一下,它运行在一个单独的线程上。 祝你今天愉快。 I just figured it out myself -.- For anyone interested: You have to set onRefreshComplete from the UI Thread. Use a Handler to .post it from insi ... -
通常是mPullToRefreshLayout.setRefreshing(true); 正在工作(如果getWindow().getWindowToken != null )。 如果那不起作用,你可以看到我的叉子https://github.com/quxey/ActionBar-PullToRefresh 编辑。 尝试这个 final ViewGroup decorView = (ViewGroup)getActivity().getWindow().getDecorView(); ...
-
自定义ListView适配器中的OutOfMemory错误[Mono Android](OutOfMemory Error in Custom ListView Adapter [Mono Android])[2022-09-09]
解决了! 它正在做的是每次调用GetView时都将字节数组解码为Bitmaps。 所以我所做的是在构造函数中将它们全部转换,并在调用GetView方法时创建一个Bitmaps缓存来引用。 这是我更新的自定义ListView适配器。 public class FishSpeciesListAdapter : BaseAdapter { Context n_context; Listn_specieData; List n_bitmapC ... -
来自您发布的代码: 第一: 请确保ArrayList
obj不为null。 超类不检查空值。 第二:这里 if (v == null) { holder = new ViewHolder(); v = myInflater.inflate(Resource, null); holder.name = (TextView) v.findViewById(R.id.mahdi); } else { holder = (ViewHolder)v.get ... -
。postListView.getRefreshableView()setOnTouchListener(gestureListener); 适合我 postListView.getRefreshableView().setOnTouchListener(gestureListener); works for me
-
从listview到我的自定义适配器的setAdapter编译器错误(setAdapter compiler error from listview to my custom adapter)[2022-03-20]
试试这个 public class SpinnerAdapter extends BaseAdapter{ Context context; ArrayListlist; LayoutInflater layoutInflater; SpinnerAdapter(Context context, ArrayList list) { layoutInflater = LayoutInflater.from(context); this.list = ... -
改变这个 super(context, R.layout.alarmlist_layout); 至 super(context, R.layout.alarmlist_layout,values); 由于您有R.layout.alarmlist_layout ,因此无需在getView再次getView布局。 阅读blackbelt的评论如下。 Change this super(context, R.layout.alarmlist_layout); to super(context, R.la ...