Ich arbeite am Track-Bestellbildschirm. Nachdem der Benutzer eine Bestellung aufgegeben hat, nimmt der Administrator Änderungen am Bestellstatus vor: Akzeptiert von Ausstehend. Ich möchte den Bestellstatus in Echtzeit auf dem Track-Order-Bildschirm anzeigen. Wenn sich der Administrator am Back-End ändert, sollte der Status geändert werden.Aktualisierung des Bestellstatus alle 30 Sekunden
Hier ist der Einstiegsbildschirm beim Klicken auf Track Order Button. http://imgur.com/a/5NCFH
Wenn die Dropdown-Liste Benutzer ausgewählt ist, werden alle auf dem Benutzer basierenden Bestellungen angezeigt. http://imgur.com/a/PiKf1
Hier ist die Spur Reihenfolge Bildschirm nach der Auswahl bestimmter Reihenfolge http://imgur.com/a/AdxLO. Wie auf dem Bild, einmal am Back-End für die Lieferung geändert, in Echtzeit möchte ich zeigen, dass die Bar für die Lieferung bestellen.
Hier ist meine Track Reihenfolge Aktivität.
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
try
{
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
setHasOptionsMenu(true);
}
catch(Exception ex) {
ex.getMessage();
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
final View view = inflater.inflate(R.layout.fragment_track_order, container, false);
try
{
mView = view;
getOrders(); // It gives me all the orders on clicking spinner
}
catch(Exception ex)
{
GSLogger.e(ex);
showToast(getString(R.string.error_loading_fragments));
}
return view;
}
private void init_AppContents(final ArrayList<TrackOrderModel> ordersList)
{
try
{
final ArrayList<String> order_arr = new ArrayList<>();
for(TrackOrderModel trackOrderModel : ordersList)
{
order_arr.add(trackOrderModel.getRestaurant_name()+" "+trackOrderModel.getData_time());
}
final SpinnerAdapter area_arrayAdapter = new SpinnerAdapter(getActivity(),
android.R.layout.simple_spinner_dropdown_item, order_arr);
order_spinner.setAdapter(area_arrayAdapter);
order_spinner.setSelection(0);
order_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3)
{
order_id = ordersList.get(position).getOrder_id();
tran_id = ordersList.get(position).getOrder_id();
if(!order_id.equals("0"))
getOrderStatus(order_id); // Based on the order id, it displays particular order status. Here I want it to change every 30 seconds.
else
{
order_received_circle.setImageResource(R.mipmap.circle_grey);
order_ready_progress.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.light_grey_2));
order_ready_circle.setImageResource(R.mipmap.circle_grey);
order_deliver_progress.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.light_grey_2));
order_deliver_circle.setImageResource(R.mipmap.circle_grey);
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
}
catch(Exception ex)
{
GSLogger.e(ex);
showToast(getString(R.string.error_init_content));
}
}
Hilfe wäre willkommen.
warum Sie nicht nach einer stillen Benachrichtigung vom Web-Ende fragen, wenn Admin Änderungen im Auftragsstatus auf Angenommen von Anstehend setzt, wenn Sie eine Benachrichtigung erhalten, verwenden Sie die lokale Übertragung, um Ihre Liste zu aktualisieren. –
Welche Lösung verwenden Sie derzeit? –
@UmarHussain Ich bin neu bei Android. Wenn Sie mir eine Lösung geben könnten, wäre das in Ordnung. Ich denke an Timer-Aufgabe. Ich weiß nicht, wohin ich setzen soll – Jacky