- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
数据加载两次...意味着 AsyncTask onPostExecute 加载相同的数据两次?我的 AsyncTask onPostExecute 运行两次它加载相同的数据...我正在运行异步任务以从服务器加载结果。在 gridview 中显示数据,但数据显示两次。我对为什么 AsyncTask 输出数据两次感到困惑。请帮助我这是我的代码:
public class InfoAccountsascyn extends AsyncTask <String, String, String>{
String result;
String s;
private Activity activity;
private String url;
private String user_id;
private ProgressDialog pDialog;
JSONObject json;
JSONParser jsonParser = new JSONParser();
private static final String TAG_SUCCESS = "Success";
int Success;
public InfoAccountsascyn(Activity activity, String url,String user_id) {
super();
this.activity = activity;
this.url = url;
this.user_id=user_id;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(activity);
pDialog.setMessage("Loading Items...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.setCanceledOnTouchOutside(false);
pDialog.show();
}
protected String doInBackground(String... args) {
try {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("customer_id", user_id));
//if(Last_id!=null){
// params.add(new BasicNameValuePair("last_product_id", Last_id));
// }
json = jsonParser.makeHttpRequest(url, "POST", params);
Success = json.getInt(TAG_SUCCESS);
} catch (JSONException e) {
e.printStackTrace();
}
if (Success == 1) {
result = json.toString();
}else{
try {
result = json.getString("CartData");
//s=result;
} catch (JSONException e) {
e.printStackTrace();
}
}
return result;
}
protected void onPostExecute(String result) {
((DetaildAddress) activity).parseJsonResponse(result);
pDialog.dismiss();
}
}
这是 parseJsonResponse
public void parseJsonResponse(String result) {
String res = result;
if (res !=null) {
try {
JSONObject jObjects = new JSONObject(result);
JAS = jObjects.getJSONArray("Data");
for (int i = 0; i < JAS.length(); i++) {
JSONObject c = JAS.getJSONObject(i);
DetailedAddressInfo productinfo = new DetailedAddressInfo();
productinfo.setFirstname(c.optString("firstname"));
productinfo.setLastname(c.optString("lastname"));
productinfo.setStreet(c.optString("street"));
productinfo.setCity(c.optString("city"));
productinfo.setRegion(c.optString("region"));
productinfo.setPostcode(c.optString("postcode"));
productinfo.setTelephone(c.optString("telephone"));
productinfo.setFax(c.optString("fax"));
productinfo.setAddId(c.optString("customer_address_id"));
productinfo.setBilling(c.optString("is_default_billing"));
productinfo.setShipping(c.optString("is_default_shipping"));
products.add(productinfo);
if (i == JAS.length() - 1) {
Last_id = c.optString("product_id");
}
}
adapter = new DetailedAddressAdapter(DetaildAddress.this, R.layout.deshbord_address, products);
gridView.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
else {
new AlertDialog.Builder(DetaildAddress.this)
.setTitle("No Address Available")
.setMessage("You Want to Add New Address")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Intent intent=new Intent(DetaildAddress.this,NewAddress.class);
String ok = "0";
intent.putExtra("ok", ok);
startActivity(intent);
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// do nothing
}
})
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
} if (pDialog != null) {
pDialog.dismiss();
}
}
这是我调用 AsyncTask 的 OnCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detaild_address);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
stub = (ViewStub) findViewById(R.id.layout_stub);
stub.setLayoutResource(R.layout.content_detaild_address);
View inflated = stub.inflate();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
String check = "0";
String chEck;
DBHandler db = new DBHandler(DetaildAddress.this);
List<DBconnector> Contacts = db.getAllContacts();
for (DBconnector cn : Contacts) {
chEck = cn.getActive();
if(chEck != null){
if (chEck.equals("1")){
check = chEck;
}
}
}
if (check.equals("1")) {
List<DBconnector> contacts = db.getActiveData();
for (DBconnector c : contacts) {
Customer_id = c.getCustomer_id();
//new CheckAddress().execute();
boolean connected = false;
ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED ||
connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
//we are connected to a network
new InfoAccountsascyn(DetaildAddress.this,url_address,Customer_id).execute();
}
else
{
Toast.makeText(DetaildAddress.this,"Internet Connection is not Available",Toast.LENGTH_LONG).show();
Intent intent=new Intent(DetaildAddress.this,HomeActivity.class);
startActivity(intent);
connected = false;
}
}
}
else{
Toast.makeText(DetaildAddress.this, "Please login First", Toast.LENGTH_LONG).show();
Intent intent = new Intent(DetaildAddress.this, UserLogin.class);
startActivity(intent);
}
gridView = (GridView) findViewById(R.id.gridView1);
myLastVisiblePos = gridView.getFirstVisiblePosition();
products = new ArrayList<DetailedAddressInfo>();
//gridView.setAdapter(new DetailedAddressAdapter(DetaildAddress.this, R.layout.deshbord_address, products));
TextView newaddress=(TextView)findViewById(R.id.newaddress);
newaddress.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(DetaildAddress.this,NewAddress.class);
String ok = "0";
intent.putExtra("ok", ok);
startActivity(intent);
}
});
}
最佳答案
在像这样初始化 JSONObject 之前,您应该使用 Arraylist 的 clear() 方法:
if(products.size()>0)
products.clear();
关于android - 数据加载两次...意味着 AsyncTask onPostExecute 加载相同的数据两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35909050/
我在 OS X 中构建菜单栏项时找到了一些示例代码。它使用了单个 |我不确定它的实际含义。 (我想做的是在菜单项左键单击时调用一个函数,但在右键单击时显示菜单) 这是我的代码 //Get refere
为什么它在第 23 行抛出编译错误。'a' 是 Apple 类的对象,col 是包含 Apple 对象的列表,但它仍然是抛出下面提到的编译错误: 类型 Collection 中的方法 add(capt
我有一个类A,它扩展了抽象类B。 让B有一个 protected 字段值 我想在 A 中使用这个字段。如果 A 没有 value,我可以编写 this.value 从 B 获取它。 与super.va
DBLint 用于检查数据库状态。有46条规则。在 www.dblint.org 上对每条规则都有一些简单的解释,但对规则 31 的描述如下: 定义的主键不是最小键:主键是最小的 super 键。如果
var aa: (()?) = (john.residence?.address = someAddress) var bb: ()? = john.residence?.printNumberOfR
我对 jquery 的可重用插件有点陌生。我已经多次遇到这段代码,但无法弄清楚究竟发生了什么。 (function( $ ){ ... })( jQuery ); 谁能帮我解答一下吗? 最佳答案
这个问题已经有答案了: int foo (int argc, ...) vs int foo() vs int foo(void) in C (4 个回答) 已关闭 9 年前。 所以我最近在 Hack
typedef struct Element { struct Element *next; void *data; } Element; 在 pop 函数中,(!(elem = *s
数据加载两次...意味着 AsyncTask onPostExecute 加载相同的数据两次?我的 AsyncTask onPostExecute 运行两次它加载相同的数据...我正在运行异步任务以从
运行“yomeanjs”时,我无限期地挂起“这可能需要几分钟”。当我尝试运行 grunt 时,它失败了,与 npm start 相同。 我使用的是 Win 8.1,并安装了最新的 Node 和 Mon
我正在看 big nerd ranch 的“Android Programming”中的这个页面,我对下面的句子感到困惑。它声明“当 Activity 被隐藏时, Activity 对象不存在”。这让
是否 const vector意味着它的元素是const也一样? 在下面的代码中, v[0].set (1234);在 void g ( const vector & v )产生编译器错误 const
我是 xml 相关事物的新手 我无法理解: SelectNodes(@"//Form/*[. = 'on']"); 注:SelectNodes是 XmlNode 的函数.(与 XmlDocument
我想方便地控制命令行参数。因此我想使用 ShellLib。 我的代码是这样的: ... #include ... EFI_STATUS EFIAPI UefiMain ( EFI_HANDL
着眼于更正 Debian 上/etc/init.d/hostapd 中的一个问题。但是,我不知道这行代码是做什么的,也不知道它是如何工作的 [ -n "$DAEMON_CONF" ] || exit
有没有人遇到过类似我下图所示的情况? 我有一个变量 landingBools.didSlowPast40Knots(正如您从调试打印输出中看到的那样)为假,但出于某种原因,if 语句评估为真。 知道为
我设法使用 flexbox 和一些非常基本的 JavaScript 为自己构建了三个下拉菜单。 因为我不太了解,所以我使用了一个简单的函数三次,而不是使用参数、变量和其他东西。我将其称为丑陋的“蛮力”
这周刚开始学习 javascript。我有一个非常菜鸟的问题。 exports.displayName = (undefined: ?string); 在 React Native 中意味着什么? 这
我正在阅读有关 NaN here 的内容它说: A comparison with a NaN always returns an unordered result even when compari
编码格式:引入*表示“从头开始重复”。例子。输入-{a,b,a,b,c,a,b,a,b,c,d}可以写成{a,b,*,c,*,d}。输出:5;例如2:ABCABCE,输出- 5。 这里*表示从头开始重
我是一名优秀的程序员,十分优秀!