- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的第一篇文章,我想问一些问题
我的应用程序使用 JSON 从数据库获取数据或将数据发布到数据库,每次发布或获取一些数据时都会执行此操作。
流程是这样的:
OrderListActivity - UpdateQtyActivity - OrderListActivity
OrderListActivity显示用户订单并可以更改订单数量,当用户按下按钮buttonOk
时,它将处理数据并自动返回到< em>OrderListActivity 再次显示订单列表。
但问题是,当用户从UpdateQtyActivity返回OrderListActivity时, ListView 中的数据没有改变尽管数据库中的数据是更改,它仍然显示旧数据。
我需要返回另一个 Activity 或执行 OrderListActivity - UpdateQtyActivity - OrderListActivity
过程 3 次,以获取要更改的数据
我之前一直尝试使用adapter.notifyDataSetChanged()
ArrayList.clear();
,但它没有给我一些东西......
这是我的OrderListActivity源代码:
public class OrderListActivity extends Activity implements OnClickListener {
ListView listProduct, listOrder, listDrink;
String FABId, FABPrice, FABName, ORDQty, SLSId;
TextView totalHarga, OrderPrice, QUANTITY;
String sum;
JSONObject jsonOrder;
Button buttonMin, buttonPlus, buttonOk;
SimpleAdapter adapter;
private ProgressDialog pDialog;
private String url_orderlist = "http://websitelink/get_order_details.php";
private static final String TAG_SUCCESS = "success";
private static final String TAG_FABID = "fab_id";
private static final String TAG_NAME = "fab_name";
private static final String TAG_PRICE = "fab_price";
private static final String TAG_SLSID = "sls_id";
private static final String TAG_ORD = "ord";
private static final String TAG_QTY = "ord_qty";
private static final String TAG_SUBTOTAL = "ord_subttl";
private static final String TAG_STATUS = "ord_status";
private static final String TAG_SUMSALES = "salesSum";
private static final String TAG_SUM = "sls_sum";
// Creating JSON Parser object
JSONParser jParser = new JSONParser();
ArrayList<HashMap<String, String>> productsListOrder = null;
HashMap<String, String> map = null;
// products JSONArray
JSONArray OrderList = null;
JSONObject SalesSummary = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_ordlist);
Intent i = getIntent();
// getting product id (pid) from intent
SLSId = i.getStringExtra(TAG_SLSID);
productsListOrder = new ArrayList<HashMap<String, String>>();
productsListOrder.remove(map);
productsListOrder.isEmpty();
productsListOrder.clear();
TextView SLS = (TextView) findViewById(R.id.ordslsId);
SLS.setText(SLSId);
Button buttonBack = (Button) findViewById(R.id.buttonBack);
buttonBack.setOnClickListener(this);
buttonBack.setText("<");
totalHarga = (TextView) findViewById(R.id.totalHarga);
listOrder = (ListView) findViewById(R.id.orderList);
adapter = new SimpleAdapter(OrderListActivity.this, productsListOrder,
R.layout.list_order, new String[]{TAG_SLSID, TAG_FABID, TAG_STATUS,
TAG_QTY, TAG_NAME, TAG_PRICE, TAG_SUBTOTAL},
new int[]{R.id.slsId, R.id.ordFabId, R.id.ordStatus, R.id.ordQty, R.id.ordName,
R.id.ordPrice, R.id.ordSubtotal}) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final View view = super.getView(position, convertView, parent);
buttonMin = (Button) view.findViewById(R.id.buttonMinQty);
buttonMin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
OrderPrice = (TextView) view.findViewById(R.id.ordPrice);
TextView OrderSubttl = (TextView) view.findViewById(R.id.ordSubtotal);
QUANTITY = (TextView) view.findViewById(R.id.ordQty);
int iQty = Integer.parseInt(QUANTITY.getText().toString());
int QUANTI = iQty - 1;
int iOrdPrice = Integer.parseInt(OrderPrice.getText().toString());
int PRICE = QUANTI*iOrdPrice;
OrderSubttl.setText(new Integer(PRICE).toString());
QUANTITY.setText(new Integer(QUANTI).toString());
}
});
buttonPlus = (Button) view.findViewById(R.id.buttonPlusQty);
buttonPlus.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
jsonOrder.remove(TAG_SUCCESS);
OrderPrice = (TextView) view.findViewById(R.id.ordPrice);
TextView OrderSubttl = (TextView) view.findViewById(R.id.ordSubtotal);
QUANTITY = (TextView) view.findViewById(R.id.ordQty);
int iQty = Integer.parseInt(QUANTITY.getText().toString());
int QUANTI = iQty + 1;
int iOrdPrice = Integer.parseInt(OrderPrice.getText().toString());
int PRICE = QUANTI*iOrdPrice;
OrderSubttl.setText(new Integer(PRICE).toString());
QUANTITY.setText(new Integer(QUANTI).toString());
}
});
buttonOk = (Button) view.findViewById(R.id.buttonOk);
buttonOk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
SLSId = ((TextView) findViewById(R.id.slsId)).getText()
.toString();
FABId = ((TextView) view.findViewById(R.id.ordFabId)).getText()
.toString();
FABPrice = ((TextView) view.findViewById(R.id.ordPrice)).getText()
.toString();
ORDQty = ((TextView) view.findViewById(R.id.ordQty)).getText()
.toString();
Intent in = new Intent(OrderListActivity.this.getApplicationContext(),
UpdateQtyActivity.class);
in.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
in.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
// sending pid to next activity
in.putExtra(TAG_SLSID, SLSId);
in.putExtra(TAG_FABID, FABId); // Starting new intent
in.putExtra(TAG_PRICE, FABPrice); // Starting new intent.
in.putExtra(TAG_QTY, ORDQty); // Starting new intent
in.putExtra(TAG_STATUS, "increase");
// starting new activity and expecting some response back
startActivityForResult(in,50);
}
});
return view;
}
};
new LoadOrder().execute();
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// if result code 100
if (resultCode == 50) {
// if result code 100 is received
// means user edited/deleted product
// reload this screen again
Intent intent = getIntent();
finish();
startActivity(intent);
} else {
}
}
@Override
public void onBackPressed() {
//super.onBackPressed(); // Comment this super call to avoid calling finish()
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.buttonBack:
// Create custom dialog object
Intent in = new Intent(OrderListActivity.this.getApplicationContext(),
MainActivity.class);
in.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
// sending id to next activity
in.putExtra(TAG_SLSID, SLSId); // Starting new intent
startActivity(in);
finish();
// closing this screen
break;
}
}
class LoadOrder extends AsyncTask<String, String, String> {
/**
* Before starting background thread Show Progress Dialog
*/
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(OrderListActivity.this);
pDialog.setMessage("Memuat Pesanan...\n Tunggu Sebentar...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
/**
* getting All products from url
*/
protected String doInBackground(String... args) {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("sls_id", SLSId));
// getting JSON string from URL
jsonOrder = jParser.makeHttpRequest(url_orderlist, "GET", params);
// Check your log cat for JSON reponse
Log.d("Orders : ", jsonOrder.toString());
try {
// Checking for SUCCESS TAG
int successOrder = jsonOrder.getInt(TAG_SUCCESS);
if (successOrder == 1) {
// products found
// Getting Array of Products
OrderList = jsonOrder.getJSONArray(TAG_ORD);
// looping through All Products
for (int i = 0; i < OrderList.length(); i++) {
JSONObject c = OrderList.getJSONObject(i);
// Storing each json item in variable
String slsid = c.getString(TAG_SLSID);
String fabid = c.getString(TAG_FABID);
String name = c.getString(TAG_NAME);
String price = c.getString(TAG_PRICE);
String qty = c.getString(TAG_QTY);
String subtotal = c.getString(TAG_SUBTOTAL);
String status = c.getString(TAG_STATUS);
// creating new HashMap
map = new HashMap<String, String>();
// adding each child node to HashMap key => value
map.put(TAG_SLSID, slsid);
map.put(TAG_FABID, fabid);
map.put(TAG_NAME, name);
map.put(TAG_PRICE, price);
map.put(TAG_QTY, qty);
map.put(TAG_SUBTOTAL, subtotal);
map.put(TAG_STATUS, status);
// adding HashList to ArrayList
productsListOrder.add(map);
}
SalesSummary = jsonOrder.getJSONObject(TAG_SUMSALES);
sum = SalesSummary.getString(TAG_SUM);
} else {
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
/**
* After completing background task Dismiss the progress dialog
* *
*/
protected void onPostExecute(String file_url) {
runOnUiThread(new Runnable() {
public void run() {
// updating UI from Background Thread
// updating listview
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
pDialog.dismiss();
adapter.notifyDataSetChanged();
listOrder.getFirstVisiblePosition();
listOrder.getLastVisiblePosition();
listOrder.setAdapter(adapter);
((SimpleAdapter)listOrder.getAdapter()).notifyDataSetChanged();
totalHarga.setText(sum);
}}, 3000); // 3000 milliseconds
}
});
}
} }
这是我的 UpdateQtyActivity 代码:
public class UpdateQtyActivity extends Activity {
private ProgressDialog pDialog;
String SLSId, FABId, FABPrice;
String FABName, FABQty, FABSubttl;
String Status, Stats;
Integer Qty;
private static String url_updquantity = "http://websitelink/update_qty.php";
private static final String TAG_SUCCESS = "success";
private static final String TAG_FAB = "fab";
private static final String TAG_FABID = "fab_id";
private static final String TAG_SLSID = "sls_id";
private static final String TAG_NAME = "fab_name";
private static final String TAG_PRICE = "fab_price";
private static final String TAG_QTY = "ord_qty";
private static final String TAG_SUBTTL = "ord_subttl";
JSONParser jParser = new JSONParser();
ArrayList<HashMap<String, String>> productsListFood;
ArrayList<HashMap<String, String>> productsListDrink;
ArrayList<HashMap<String, String>> productsListOrder;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.blank);
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
Intent i = getIntent();
// getting product id (pid) from intent
SLSId = i.getStringExtra(TAG_SLSID);
FABId = i.getStringExtra(TAG_FABID);
FABPrice = i.getStringExtra(TAG_PRICE);
FABName = i.getStringExtra(TAG_NAME);
FABQty = i.getStringExtra(TAG_QTY);
FABSubttl = i.getStringExtra(TAG_SUBTTL);
// Getting complete product details in background thread
new GetProductDetails().execute();
}
class GetProductDetails extends AsyncTask<String, String, String> {
/**
* Before starting background thread Show Progress Dialog
*/
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(UpdateQtyActivity.this);
pDialog.setMessage("Memproses Pesanan Anda");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
/**
* Getting product details in background thread
*/
protected String doInBackground(String... params) {
// updating UI from Background Thread
runOnUiThread(new Runnable() {
public void run() {
// Check for success tag
int success;
try {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("fab_id", FABId));
params.add(new BasicNameValuePair("fab_name", FABName));
params.add(new BasicNameValuePair("fab_price", FABPrice));
params.add(new BasicNameValuePair("sls_id", SLSId));
params.add(new BasicNameValuePair("ord_qty", FABQty));
params.add(new BasicNameValuePair("ord_subttl", FABSubttl));
// getting product details by making HTTP request
// Note that product details url will use GET request
JSONObject jsonOrder = jParser.makeHttpRequest(url_updquantity,
"POST", params);
// check log cat fro response
Log.d("Input Data", jsonOrder.toString());
// json success tag
int successOrd = jsonOrder.getInt(TAG_SUCCESS);
if (successOrd == 1) {
// successfully created product
Stats = "2";
Intent i = getIntent();
//Intent i = new Intent(getApplicationContext(), OrderListActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
i.putExtra(TAG_SLSID, SLSId);
i.putExtra(Status,Stats);
setResult(50, i);
finish();
// closing this screen
} else {
// failed to create product
}
// product with this pid found
} catch (JSONException e) {
e.printStackTrace();
}
}
});
return null;
}
/**
* After completing background task Dismiss the progress dialog
* *
*/
protected void onPostExecute(String file_url) {
// dismiss the dialog once got all details
pDialog.dismiss();
}
}
}
输出图片:Here
我很想听到你的回复,抱歉我的英语不好
谢谢
最佳答案
你可以尝试一下这个方法吗
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// if result code 50
if (resultCode == 50) {
// if result code 50 is received
// means user edited/deleted product
// **reload previous data**
new LoadOrder().execute();
}
}
更新:您需要在LoadOrder类的onPreExecute方法中清除productsListOrder ArrayList。
/**
* Before starting background thread Show Progress Dialog
*/
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(OrderListActivity.this);
pDialog.setMessage("Memuat Pesanan...\n Tunggu Sebentar...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
productsListOrder.clear();
}
关于android - 数据库数据变化时ListView新增数据没有直接显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28183250/
我的Angular-Component位于一个flexbox(id =“log”)中。可以显示或隐藏flexbox。 我的组件内部有一个可滚动区域,用于显示日志消息。 (id =“message-li
我真的很困惑 有一个 phpinfo() 输出: MySQL 支持 启用 客户端 API 版本 5.5.40 MYSQL_MODULE_TYPE 外部 phpMyAdmin 显示: 服务器类型:Mar
我正在研究这个 fiddle : http://jsfiddle.net/cED6c/7/我想让按钮文本在单击时发生变化,我尝试使用以下代码: 但是,它不起作用。我应该如何实现这个?任何帮助都会很棒
我应该在“dogs_cats”中保存表“dogs”和“cats”各自的ID,当看到数据时显示狗和猫的名字。 我有这三个表: CREATE TABLE IF NOT EXISTS cats ( id
我有一个字符串返回到我的 View 之一,如下所示: $text = 'Lorem ipsum dolor ' 我正在尝试用 Blade 显示它: {{$text}} 但是,输出是原始字符串而不是渲染
我无法让我的链接(由图像表示,位于页面左侧)真正有效地显示一个 div(包含一个句子,位于中间)/单击链接时隐藏。 这是我的代码: Practice
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
最初我使用 Listview 来显示 oracle 结果,但是最近我不得不切换到 datagridview 来处理比 Listview 允许的更多的结果。然而,自从切换到数据网格后,我得到的结果越来越
我一直在尝试插入一个 Unicode 字符 ∇ 或 ▽,所以它显示在 Apache FOP 生成的 PDF 中。 这是我到目前为止所做的: 根据这个基本帮助 Apache XSL-FO Input,您
我正在使用 node v0.12.7 编写一个 nodeJS 应用程序。 我正在使用 pm2 v0.14.7 运行我的 nodejs 应用程序。 我的应用程序似乎有内存泄漏,因为它从我启动时的大约 1
好的,所以我有一些 jQuery 代码,如果从下拉菜单中选择了带有前缀 Blue 的项目,它会显示一个输入框。 代码: $(function() { $('#text1').hide();
当我试图检查 Chrome 中的 html 元素时,它显示的是 LESS 文件,而 Firefox 显示的是 CSS 文件。 (我正在使用 Bootstrap 框架) 如何在 Chrome 中查看 c
我是 Microsoft Bot Framework 的新手,我正在通过 youtube 视频 https://youtu.be/ynG6Muox81o 学习它并在 Ubuntu 上使用 python
我正在尝试转换从 mssql 生成的文件到 utf-8。当我打开他的输出 mssql在 Windows Server 2003 中使用 notepad++ 将文件识别为 UCS-2LE我使用 file
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我正在尝试执行单击以打开/关闭一个 div 的功能。 这是基本的,但是,点击只显示 div,当我点击“关闭”时,没有任何反应。 $(".inscricao-email").click(function
假设我有 2 张卡片,屏幕上一次显示一张。我有一个按钮可以用其他卡片替换当前卡片。现在假设卡 1 上有一些数据,卡 2 上有一些数据,我不想破坏它们每个上的数据,或者我不想再次重建它们中的任何一个。
我正在使用 Eloquent Javascript 学习 Javascript。 我在 Firefox 控制台上编写了以下代码,但它返回:“ReferenceError:show() 未定义”为什么?
我正在使用 Symfony2 开发一个 web 项目,我使用 Sonata Admin 作为管理面板,一切正常,但我想要做的是,在 Sonata Admin 的仪表板菜单上,我需要显示隐藏一些菜单取决
我试图显示一个div,具体取决于从下拉列表中选择的内容。例如,如果用户从列表中选择“现金”显示现金div或用户从列表中选择“检查”显示现金div 我整理了样本,但样本不完整,需要接线 http://j
我是一名优秀的程序员,十分优秀!