Выбранное значение Spinner не загружается в базу данных Firebase - PullRequest
0 голосов
/ 23 сентября 2019

Я делаю приложение для покупок и хочу загрузить выбранное значение счетчика в мою базу данных.Значение загружается в базу данных, но это не правильное значение, которое загружается.Вот мой код.

mySpinner = (Spinner) findViewById(R.id.spinner1);


    ArrayAdapter<String> myAdapter = new ArrayAdapter<String>(getApplicationContext(),
            android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.names));
    myAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    mySpinner.setAdapter(myAdapter);
    selectedValue = mySpinner.getSelectedItem().toString();

...

private void addingToCartList()
{
    String saveCurrentTime, saveCurrentDate;

    Calendar calForDate = Calendar.getInstance();
    SimpleDateFormat currentDate = new SimpleDateFormat("MMM dd, yyyy");
    saveCurrentDate = currentDate.format(calForDate.getTime());
    SimpleDateFormat currentTime = new SimpleDateFormat("HH:mm:ss a");
    saveCurrentTime = currentTime.format(calForDate.getTime());

    final DatabaseReference cartListRef = FirebaseDatabase.getInstance().getReference().child("Cart List");

    final HashMap<String, Object> cartMap = new HashMap<>();
    cartMap.put("pid", productID);
    cartMap.put("pname", productName.getText().toString());
    cartMap.put("price", productPrice.getText().toString());
    cartMap.put("date", saveCurrentDate);
    cartMap.put("time", saveCurrentTime);
    cartMap.put("quantity", selectedValue);
    cartMap.put("discount", "");
    cartListRef.child("User View").child(Prevelant.currentOnlineUser.getUsername())
            .child("Products").child(productID)
            .updateChildren(cartMap)
            .addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task)
                {
                    if(task.isSuccessful())
                    {
                        cartListRef.child("Admin View").child(Prevelant.currentOnlineUser.getUsername())
                                .child("Products").child(productID)
                                .updateChildren(cartMap)
                                .addOnCompleteListener(new OnCompleteListener<Void>() {
                                    @Override
                                    public void onComplete(@NonNull Task<Void> task)
                                    {
                                        if(task.isSuccessful())
                                        {
                                            Toast.makeText(ProductDetails2Activity.this, "Added to Cart List", Toast.LENGTH_SHORT).show();
                                            Intent intent = new Intent (ProductDetails2Activity.this, CartActivity.class);
                                            startActivity(intent);
                                        }
                                    }
                                });
                    }
                }
            });
}

String array

И каждый раз, когда значение загружается вбаза данных 250

database

Я хочу решить, что ...

1 Ответ

0 голосов
/ 23 сентября 2019

По моему мнению, вы должны получить выбранный элемент после того, как пользователь нажал кнопку "Отправить", но вы получаете значение еще до того, как он изменил его, поэтому по умолчанию он принимает первый

private void addingToCartList()
{
String saveCurrentTime, saveCurrentDate;

Calendar calForDate = Calendar.getInstance();
SimpleDateFormat currentDate = new SimpleDateFormat("MMM dd, yyyy");
saveCurrentDate = currentDate.format(calForDate.getTime());
SimpleDateFormat currentTime = new SimpleDateFormat("HH:mm:ss a");
saveCurrentTime = currentTime.format(calForDate.getTime());

//putting spinner here
selectedValue = mySpinner.getSelectedItem().toString();

final DatabaseReference cartListRef = FirebaseDatabase.getInstance().getReference().child("Cart List");

final HashMap<String, Object> cartMap = new HashMap<>();
cartMap.put("pid", productID);
cartMap.put("pname", productName.getText().toString());
cartMap.put("price", productPrice.getText().toString());
cartMap.put("date", saveCurrentDate);
cartMap.put("time", saveCurrentTime);
cartMap.put("quantity", selectedValue);
cartMap.put("discount", "");
cartListRef.child("User View").child(Prevelant.currentOnlineUser.getUsername())
        .child("Products").child(productID)
        .updateChildren(cartMap)
        .addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task)
            {
                if(task.isSuccessful())
                {
                    cartListRef.child("Admin View").child(Prevelant.currentOnlineUser.getUsername())
                            .child("Products").child(productID)
                            .updateChildren(cartMap)
                            .addOnCompleteListener(new OnCompleteListener<Void>() {
                                @Override
                                public void onComplete(@NonNull Task<Void> task)
                                {
                                    if(task.isSuccessful())
                                    {
                                        Toast.makeText(ProductDetails2Activity.this, "Added to Cart List", Toast.LENGTH_SHORT).show();
                                        Intent intent = new Intent (ProductDetails2Activity.this, CartActivity.class);
                                        startActivity(intent);
                                    }
                                }
                            });
                }
            }
        });
}

НадеюсьЭто работает, дайте мне знать, если это работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...