这么久没人能帮我吗? Bmob服务器。在查询数据时只能异步查询,onSuccess出现脏数据 ,请问怎么解决?

一些片段代码

//定义个个获取查询出的数据的数量
private int carNum;

public int findCars(String goods_id, String user_id){
//--and条件1
BmobQuery eq1 = new BmobQuery("car");
eq1.addWhereEqualTo("goods_id", goods_id);
//--and条件2
BmobQuery eq2 = new BmobQuery("car");
eq2.addWhereEqualTo("user_id", user_id);
//整合成and条件
List> andQuerys = new ArrayList>();
andQuerys.add(eq1);
andQuerys.add(eq2);

//查询符合整个and条件的人
BmobQuery query = new BmobQuery("car");
query.and(andQuerys);

query.findObjects(context, new FindCallback() {
@Override
public void onSuccess(JSONArray arg0) {
Log.i("bmob", "for的legrnt::" + arg0.length() + "条数据。");
carNum=arg0.length();
}

@Override
public void onFailure(int arg0, String arg1) {
Log.i("bmob", "查询失败:");
}
});
Log.i("bmob", "count:" +carNum);
return carNum;
}

然后再另一个类中使用该方法,一个点击事件里
public void onClick(View v) {
//将商品的id和用户id存入数据库
if(User.getCurrentUser(context)== null){
Intent intent = new Intent(context, LoginActivity.class);
context.startActivity(intent);
}else {
//将商品的id存入数据库
CarDao carDao = new CarDao(context);
GoodsDao goodsDao=new GoodsDao(context);
//添加到购物车里
if(carDao.findCars(goodsId,user_id)<=0) {
Log.i("bmob", "进入for循环。。。。。。");
carDao.saveGoods(goodsId, User.getCurrentUser(context).getObjectId());
}else {
carDao.updateCar(carDao.getCarId(goodsId,user_id));
}
//商品可售数量减一
goodsDao.updateData(goodsId);
}
}

数据输出
for的legrnt::3
count:0

也就是说findCars(String goods_id, String user_id)方法中在onSuccess里成功对carNum赋值了,但是return回来后确实0.
在网上查了一些资料说是onSuccess异步加载的问题,
我试过用handler去获取,是可以获取得了在onSuccess里面的数据,但是handler里面的数据我又拿不出给主线程里的变量,还是为null
小弟我能力不够解决这个问题,这问题已经困扰我好几天天了,希望有大神可以帮下我。

4个回答

图片说明

addQuerys应该在query后的 onSuccess里面再实现List添加元素 或者使用handler 您这样会导致前面查询未结束后面代码已经执行,导致空指针出现

a731896628
a731896628 是的,没错。就是这个问题,但是我需要的事解决问题的方法。
一年多之前 回复

取到数据后, 执行刷新ui的方法 Activity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
//todo
}
});

lemonCase
lemonCase 回复a731896628: 你把这句话丢到 onsuccessint i=carDao.findCars(goodsId,user_id);
一年多之前 回复
a731896628
a731896628 确实,如果在onsuccess里通过更新适配器的话是可以将数据刷新到界面,但是一个问题是在主线程上赋值int i=carDao.findCars(goodsId,user_id); 这样的话i是空的,就是说carDao.findCars(goodsId,user_id)还没来得及查完数据,这句话就已经走完了。
一年多之前 回复

你好我是要成为海贼王的男人

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
没人能帮我吗???
想在DDraw的游戏中加一个300*300像素的转动星球的动画作为游戏背景。rn本来,我用3dmax先渲出300贞存成300张bmp,再在ddraw中创建300个Surface,一张一张blt。但该方法耗资太大。rnrn有其它的方法吗?rn能否用d3d在ddraw中渲出一个?(请具体告知。谢谢!)rnrnrnrn用IDirect3DRm2接口得到了IDirect3DRmDevice2设备,并把它和一个DDraw的BackSuface相连。这样就能把3D物体渲染到DDraw的表面上。但是,如何在渲染过程中设置一关键色(例如黑色),使3D场景中的关键色(如黑色),能透明的写在BackSurface.rnrn如果IDirect3DRm2没有这样的功能,该如何?rn用IDirect3D接口可以实现吗?D3D8以前的接口支持.x的文件吗?rnrn请指教。万分感谢!rn
真的没人能帮我吗?
rn在鼠标右键中添加一菜单项,用这一项和上述代码能实现将网页上鼠标选中的英文小写字母变成大写。现在我若想把鼠标选中的文字复制并粘贴到指定的文本文件中又该怎么写呢?rnrn
没人可以帮我吗???????
在vc6里我们可以打开任何文件,看到的是十六进制数rn请问怎样在自己的程序里读取这些的数据呢》?
·重开贴·没人能帮我吗?
谁能给我一些关于 结构体作函数的参数 的讲解资料,越详细越好,谢谢!rn30分相赠,不成敬意。rnrn教程或例子都可以,两者都有更好。
难道没人能帮我吗?高分相送!
怎么产生一个小于q(BigInteger类型) 的安全随机数(使用SecureRandom),最好给个例子,各位老大?rn
这个问题还是没人能帮我吗?
有一个问题,就是我的Tomcat+jdk服务器在运行一段时间后突然不好使,必须关闭后,从新打开才能恢复,这样晚上就会有一些人上不了。他的提示错误是:rnaq.executeQuery:[microsoft][ODBC驱动程序管理器]连接未打开。rn为什么,请给答复!
没人能帮助我吗?
如何能够让VB程序有实时显示XML文件的效果,即对XML文件内容修改后(例如添加、删除某些代码)程序可以实时显示修改后的XML文件的显示效果。rn应该用什么控件或方法解决?rn
没人会???没人肯帮我吗???
求助各位高手!!!如何取得在主窗口中自行建立的CTabCtrl的句柄指针 ???rnrn #define tab1 101rnrn一、我在单文档CView类中写如下代码:rnrn CTabCtrl m_tab;rnm_tab.Create(WS_CHILD|WS_VISIBLE|TCS_BOTTOM,CRect(10,10,300,300),this,tab1);rnrn二、然后我新建一个基于CWnd的新类 :rn 在此类中,我新添void button1()rn 然后写如下代码:rnrn CWnd *pWnd=AfxGetApp()->GetMainWnd();rn CTabCtrl *p=(CTabCtrl *)pWnd->GetDlgItem(tab1); (返回0)rnrn却返回0,错了! 如何将CTabCtrl类换成CButton或者CTreeCtrl,却正确!rnrn请各位高手不吝赐教,本人不甚感激!!!rnrn三、rn为什么? 我为什么在CMainFrame中新建一个CTabCtrl后却显示不出来呀???rnrn 我首先新建一单文档,然后rn 我在CMainFrame中新建了一个CTabCtrl,但却显示不出来,如果rn将CTabCtrl改成CButton 或者 CTreeCtrl,却能显示出来,为什么呢???rnrn
难道就没人帮我吗?
当使用了Form1.ActiveForm.ShowInTaskbar = false 后,按ALT+TAB进行切换程序时,显示的程序图标怎么变成了WINDOWS图标了?请问如何才能改成程序的图标啊?先谢谢各位了!
能帮我吗?
如何利用textcolor函数在屏幕上体现颜色??
有人能帮我吗?
我现在开发一个论坛,需要建立一些数据库表.rn有谁能告诉我大概需要建哪些表,最好给个例子.我看了JIVE的,没有任何说明,不大懂,而且我得论坛只要具备一般功能就行了
能帮一下我吗?
我在取模运算时碰到问题。rn题目是 5%2。3 error(both operand must be integers)rn我是这样做的rn#includernusing namespace std:rnconst int a=5rnconst int b=2.3rnint main()rnrn cout<<"a%b="<
有人能帮我吗???
1.IP流量测定rn2.拦截非法网络数据包rnrn以上两个程序怎么编啊...........................哎
你能帮我吗
郑重声明: 以下我所说的都是真实,诚心诚意的!rnrn主题:rn 有谁能在经济上给予我帮助呢, 我需要2000元rnrn简介:rn 本人是一名计算机专科大三的学生,对计算机有着非常浓厚的兴趣,特别是在编程方面,而且学得还算不错(是那种被周围大多数人称为高手的那种人),但因为家庭经济条件的原因,一直无法拥有自己的计算机,一直以来都是靠着学校上机及在同学们之间打游击过日子,而近来随着学习的进一步深入,我感觉真的是非常需要有自己的计算机了,可是家庭经济条件不能允许,这学年的学费都大半是借来的,所以我冒昧的发出这封贴子,看看是否有人愿意帮助我呢.rn 我所能做到的就是,提供自己的身份证明,以及您想要了解的一切.而我希望还款期限是2003年1月1日.rn 如果你有能力并且愿意帮助我,请与ineedhelp2001@sohu.com联系,如果你不愿意,那也请不要讽刺我,不要说出一些恶意的话来.rn 或许我是有点天真.
你能帮我吗?
通常情况下出现Table1:cannot perform this operation on an open dataset.是什么引起的?如何解决?
中程能帮我吗?
一个高中生拿了中程,能进入IT行业吗?
版主,能帮我吗?
我有一个线程的程序Test.java如下:rnrnrnclass Testrn public static void main(String[] args)rn Thread foo=new MyThread("Foo");rn foo.setPriority(Thread.MIN_PRIORITY);rn foo.start();rn rnrnclass MyThread extends Threadrn String mess;rn MyThread (String mess)rn this.mess=mess;rn rn public void run()rn int i=0;rn while(i<20)rn tryrn sleep(500);rn System.out.println(mess+" "+getPriority());rn System.out.println(i);rn i++;rn rn catch(InterruptedException e)rn rn rnrn此线程每0.5秒启动一下,我现在想将此线程作为一个事件源,自己做一个rn监听器,当线程的状态改变时,监听器监听出变化,用来做出反应,请问rn如何实现,本人对jdk1.1的委托机制了解。(最好有一个例子!)rnrn谢谢!
有人能帮我吗
郑重声明: 以下我所说的都是真实,诚心诚意的!rnrn主题:rn 有谁能在经济上给予我帮助呢, 我需要2000元rnrn简介:rn 本人是一名计算机专科大三的学生,对计算机有着非常浓厚的兴趣,特别是在编程方面,而且学得还算不错(是那种被周围大多数人称为高手的那种人),但因为家庭经济条件的原因,一直无法拥有自己的计算机,一直以来都是靠着学校上机及在同学们之间打游击过日子,而近来随着学习的进一步深入,我感觉真的是非常需要有自己的计算机了,可是家庭经济条件不能允许,这学年的学费都大半是借来的,所以我冒昧的发出这封贴子,看看是否有人愿意帮助我呢.rn 我所能做到的就是,提供自己的身份证明,以及您想要了解的一切.而我希望还款期限是2003年1月1日.rn 如果你有能力并且愿意帮助我,请与ineedhelp2001@sohu.com联系,如果你不愿意,那也请不要讽刺我,不要说出一些恶意的话来.rn 或许我是有点天真.
有人能帮我吗??
划划OSI的七层网络结构图和TCP/IP的五层结构图
有人能帮我吗?
不知有人能否把VB安装盘上的图标文件打包发给我,我的光驱坏了。rnrn我的EMAIL是 lw0389@china.com
有人能帮我吗??
我对编程不太熟悉,但我喜欢编程啊~~我爸爸看我很喜欢编程,就买了很多书给我,说慢慢学啊 ~~呵呵~~可是因为我的天资不够啊~~我还是菜鸟啊~~(不好意思,但别笑啊)我爸爸给了我一个任务,说你会编程了吗??我当然说YES(为了面子)他让我编一个程序,是这样的啊:rn他要建一个表格,里边有每天输入的数据(有公司名,时间等信息)同时又要输入很多信息,但不能再写同样的(比如公司名等)也就是说要查找到原来有的那个里边去输入啊~~rn程序实现:原来有一公司名AAAA,有某些数据rn现在我有要输入这个公司的某些信息,那么,我仍然想往常一样输入,但程序会自动的把他合并到那个公司下啊~(注意是加一条,不是与原来的合并。比如我原来记录如下:rn1999-6-23 XXXXX公司 买xxxxxx东西rn现在又有了新的输入:2000-5-6 XXXXX公司 买AAAAAAAA东西rn那么现在当我查找XXXXX公司的资料时,有记录:rn1999-6-23 XXXXX公司 买xxxxxx东西rn2000-5-6 XXXXX公司 买AAAAAAAA东西rn时间是程序自己生成的~~~rn呵呵~~也许不太明白,为此,我下定决心,我要学好编程~~~为爸爸,为自己,也为大家~~rn同时我也想请教大家,我应该学什么,学什么好,怎么学?~~呵呵~~问题多吧~~不好意思啊我的E-mail:hotdog@cn99.comrn多多关照啊~~谢谢各位~
能帮我吗---J2SE
小弟我做了一个程序,我想不通过在 cmd里运行,而是想通过双击打开,就像打个QQ一样,谢谢了
“脏数据”问题怎么解决?
RT
Properties类的问题。一直没人解决掉。没人能帮我吗?
我有一个文件oracle_publicsg.propertiesrn这个文件中有serverName和port两个属性rnrnProperties settings = new Properties();rnInputStream in = ClassLoaderUtil.getResourceAsStream(“oracle_publicsg.properties”, null); //这个方法是我写的可以返回流的。是正确的rnsettings.load(in);rnsettings.getProperty("port"); --打出来的结果是对的rnrnsettings.setProperty("serverName",dbAddress);rnsettings.setProperty("port",port);rnrn但是rn我要保存对这两个文件的修改,该怎么做?
真的没有人能帮我吗?
用DB2客户端配置程序建了一个ODBC数据源,但是用SQL SERVER将DB2数据库导入总有错误rn提示为数据类型无法转换,经查是DB2里的GRAPHIC类型惹的祸。现在的问题是根本无法从ODBC里读出数据,所以对转换更无从谈起。有谁能告诉我ODBC里的设定方法吗,还有用DTS读数据之前怎样进行转换呀?
各位高手,能帮我吗???
各位,我是一个管理员(计算机房)机房的机子全都配了“三名还原目卡”重起以后你上次保存的东西什么也没有了,可是我要忘了密码,不能卸丢它。你们有什么办法吗?有没有什么破密办法???rn   还有,机子全盘保护了,在CMOS可不可以破了它呢?如果要破有什么办法吗?谢谢你们了!!!!!!!
心情不好,能帮我吗?
小弟想做一个小小的数据输入和查询软件(最好是有两二个界面一个有三四个框框输入,另一个又有三四个框查询这样的)rn那些达人做过能发个代码给我吗?感激..................分只剩这么多,不够另外开贴给
你会了,能帮我吗?!
在freeform数据窗口中我定义了一个字段的EDIT为DROGDOWNDW,显示字段为MC,保存值为DM,可是当新增记录时,在这个字段的子窗口里没有任何记录可以选择!!!!rnrn神啊,救救我吧!
高手能帮一下我吗?
login控件用文本框赋值判断跳到不同的页面那个我会,可是用到数据库查询,就不会了,比如有四个不用的按钮“学生、教师、部门、游客”这四个都是根据数据库的查询,学生有几万个,教师有几千个,每个都有不同的账号,我不会做,怎么做啊?能给个详细的代码写法吗?
那位大哥能帮我吗
我调用webservice时出现这样的错误:请求因 HTTP 状态 401 失败:Unauthorized
百思不得其解!你能帮我吗?
如何用ADO连接EXCEL,作类似数据库方面的处理!rn 最好提供从ODBC配置到ADO连接的例子,多谢,有高分相转送!
系统崩溃了,有人能帮我吗?
我在电脑装了两个系统,windows和linux。后来由于在windows下用了PQ而导致两个系统都无法进入,开机后总是出现提示符:rngrup>rn请问我应该怎么进行系统恢复?rn多谢指教!
bull shit~~就没人帮我吗?
nnnd~~
崩溃了,没人等帮我吗 ,奇怪的servlet!!!
这是一个servlet,我在里面加了一个main函数,也可以用JAVA APPLICATION来运行,main函数里面就是调用doGet()rn为什么访问网页出错,运行JAVA APPLICATION就没问题呢!!!??rn[code=Java]rnpublic class EmpInfoServlet extends HttpServlet rn rn protected void doGet(HttpServletRequest req, HttpServletResponse resp)rn throws ServletException, IOException rn rn EmpMgr.getEmp();rn rn public static void main(String a[])rn try rn new EmpInfoServlet().doGet(null,null);rn catch (ServletException e) rn e.printStackTrace();rn catch (IOException e) rn e.printStackTrace();rn rn rnrnrn[/code]rn出错的代码经常改变,有时候说NoClassDefFoundError,有时候说别的,根本不确定rn[code=Java]rn严重: Servlet.service() for servlet empInfo threw exceptionrnjava.lang.IncompatibleClassChangeErrorrn at com.singlegogogo.servlet.EmpInfoServlet.doGet(EmpInfoServlet.java:25)rn at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)rn at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)rn[/code]
没人帮我吗?求大家帮帮忙吧
请大家移步:http://expert.csdn.net/Expert/TopicView3.asp?id=2562922rn我没办法回复帖子了rn用了孟子E章大哥教的contentType后,保存,文件扩展名的确不为.jsp了,变成.xls了。还是哭死~~~~~~~~~``大家帮我吧,今天不能解决,还是不能回家了
不太可能实现的查询(没人能解决?)
a b c d e frn 3 4 9 4 5 3rn 3 4 5 4 5 3rn 4 4 9 3 5 3rnrnselect count(a), sum(b),d(想要只查询出c=9的记录。。。再用Count) from test group by arnrn这个语句有人能指导吗??感觉不太可能写出来。。。a b 两个字段都没问题。。最大问题是查询C的时候需要根据C的值来进行判断进行Count操作。。rn
没人能解决吗?
我想用CToolBar建立一个只包含一个组合框的工具栏,rn不用CDialogBar、CRebar,不用别人写好的库。rn最好不用MFC,教我封装API吧。
难道没人能解决?
http://community.csdn.net/Expert/topic/4376/4376101.xml?temp=.3308069
没人回答我吗?
是不是我的问题有些怪,不过我还有一些问题向高手请教:rn1、怎样控制数据窗口中显示记录的范围?rn2、怎样让没有被修改的行设为不可编辑?rn3、数据窗口表达式仍然感到怪怪的,怎样在其中使用枚举型数据?rn4、可不可以在dw中做出漂亮的用户界面来?给个例子.rn还有很多,慢慢问吧。
请问没人能解决这个问题吗?
请问手机端的中文怎样正确的传到服务端以便于从数据库中检索?rn我的配置为:rn数据库:mysqlrn服务器:Tomcat Servletrn运行平台:window2000rn这个问题已经困扰我整整辆天了,各位大虾,救救我吧.rnrn今天我在网上看到了如下的解决方法:rnString strText=mainScreen.getString();rn然后定义一个byte数组,rnbyte[] bText = new byte[100];rn然后把要发送的字符串利用下面的函数转换成byte数组,以便进行传输rnpublic static String byte2string(byte[] b,int offset,int len )rnrntryrn   ByteArrayInputStream bais = new ByteArrayInputStream(b,offset,len);rn   DataInputStream inputstream = new DataInputStream( bais );rn   return inputstream.readUTF();rn  catch(IOException e)return null;rn rnrnbText = string2byte(strText);rnint length = bText.length;rn最后把转换后的byte数组数据发送到Server端,rndc = (DatagramConnection)Connector.open(destAddr);rnDatagram dobject = dc.newDatagram(bText,length,destAddr);rndc.send(dobject);rnrn很显然,以上代码是将数据打包为数据包,通过udp协议传输到服务端的,但我现在的问题是通过Http协议在查询字段中包括中文,比如:rnhttp://localhost:8080/servlet/login?username="王小二"&pwd="123"rn请问具体的代码应该怎么写,服务端servlet的数据接收有什么改变?各位大哥,帮小弟解决这个问题吧,不胜感激!!rn
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview