我有两张桌子,一张是Information
另一张桌子WorkForce
信息
劳动力
该TWF column
在劳动力来获得id
的信息,其假设回报1,但它的返回值0.如果id
在信息是 5,twf
应该是5了.
首先我使用它a
来表示所选行的数量,然后将参数添加a
到addWorkForce
.在toast
始终显示0.
a=addInformation(name,weather,date2,status,first1[1],last1[1]); Toast.makeText(getApplicationContext(),a+"",Toast.LENGTH_LONG).show(); addWorkForce(Sub, NoP, NoH,a);
addInformation函数
public long addInformation( final String name, final String weather, final String date2, final String status, final String timeIn, final String timeOut) { class AddInfo extends AsyncTask{ ProgressDialog loading; @Override protected void onPreExecute() { super.onPreExecute(); loading = ProgressDialog.show(WorkDetailsTable.this, "Please Wait",null, true, true); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); loading.dismiss(); Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show(); } @Override protected String doInBackground(String... params) { HashMap data = new HashMap (); data.put(Config.KEY_USER_NAME,name); data.put(Config.KEY_WEATHER,weather); data.put(Config.KEY_DATE,date2); data.put(Config.KEY_STATUS,status); data.put(Config.KEY_TIMEIN,timeIn); data.put(Config.KEY_TIMEOUT,timeOut); RequestHandler rh=new RequestHandler(); String result = rh.sendPostRequest(Config.ADD_INFORMATION,data); return result; } } AddInfo ru = new AddInfo(); ru.execute(name,weather,date2,status,timeIn,timeOut); return 0; }
有人可以帮我解决问题吗?
addInformation.php
这就是我使用代码将行插入sqlite的方法,它可以工作
a = ts.insertTimeSheet(name, weather, date2, status, first1[1], last1[1]);
时间表
public long insertTimeSheet(String name, String weather, String date, String status, String TimeIn, String TimeOut) { database = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(MyDatabaseHelper.Name, name); values.put(MyDatabaseHelper.Weather, weather); values.put(MyDatabaseHelper.Date, date); values.put(MyDatabaseHelper.Status, status); values.put(MyDatabaseHelper.TimeIn_Info, TimeIn); values.put(MyDatabaseHelper.TimeOut_Info, TimeOut); return database.insert(MyDatabaseHelper.TABLE_INFO, null, values); // if the id in Information is 5, twf display 5 too
Geeky Singh.. 7
根据您的代码添加信息:
a=addInformation(name,weather,date2,status,first1[1],last1[1]);
在这里,您调用addInformation
主线程并将返回值保存到变量a.但问题是,你的信息添加实际执行中进行doInBackground
的AsyncTask
,实际上做的工作线程任务(异步调用),所以你总是会得到一个= 0的默认值(作为长).
您需要做的是将代码移动到以下onPostExecute
功能AsyncTask
:
public void addInformation( final String name, final String weather, final String date2, final String status, final String timeIn, final String timeOut) { class AddInfo extends AsyncTask{ ProgressDialog loading; @Override protected void onPreExecute() { super.onPreExecute(); loading = ProgressDialog.show(WorkDetailsTable.this, "Please Wait",null, true, true); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); loading.dismiss(); Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show(); addWorkForce(Sub, NoP, NoH,a); } @Override protected String doInBackground(String... params) { HashMap data = new HashMap (); data.put(Config.KEY_USER_NAME,name); data.put(Config.KEY_WEATHER,weather); data.put(Config.KEY_DATE,date2); data.put(Config.KEY_STATUS,status); data.put(Config.KEY_TIMEIN,timeIn); data.put(Config.KEY_TIMEOUT,timeOut); RequestHandler rh=new RequestHandler(); String result = rh.sendPostRequest(Config.ADD_INFORMATION,data); return result; } } AddInfo ru = new AddInfo(); ru.execute(name,weather,date2,status,timeIn,timeOut); }
还有另一种使用回调的方法.实现一个接口,在完成AsyncTask后,您可以发送回调来完成另一项工作.
根据您的代码添加信息:
a=addInformation(name,weather,date2,status,first1[1],last1[1]);
在这里,您调用addInformation
主线程并将返回值保存到变量a.但问题是,你的信息添加实际执行中进行doInBackground
的AsyncTask
,实际上做的工作线程任务(异步调用),所以你总是会得到一个= 0的默认值(作为长).
您需要做的是将代码移动到以下onPostExecute
功能AsyncTask
:
public void addInformation( final String name, final String weather, final String date2, final String status, final String timeIn, final String timeOut) { class AddInfo extends AsyncTask{ ProgressDialog loading; @Override protected void onPreExecute() { super.onPreExecute(); loading = ProgressDialog.show(WorkDetailsTable.this, "Please Wait",null, true, true); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); loading.dismiss(); Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show(); addWorkForce(Sub, NoP, NoH,a); } @Override protected String doInBackground(String... params) { HashMap data = new HashMap (); data.put(Config.KEY_USER_NAME,name); data.put(Config.KEY_WEATHER,weather); data.put(Config.KEY_DATE,date2); data.put(Config.KEY_STATUS,status); data.put(Config.KEY_TIMEIN,timeIn); data.put(Config.KEY_TIMEOUT,timeOut); RequestHandler rh=new RequestHandler(); String result = rh.sendPostRequest(Config.ADD_INFORMATION,data); return result; } } AddInfo ru = new AddInfo(); ru.execute(name,weather,date2,status,timeIn,timeOut); }
还有另一种使用回调的方法.实现一个接口,在完成AsyncTask后,您可以发送回调来完成另一项工作.