首页 > 解决方案 > 优雅的数字按钮更改我的背景活动

问题描述

大家好,我的应用程序中的优雅数字按钮有问题,当我将该按钮放入我的活动中时,当我运行它时,我的背景活动变为与按钮相同的颜色......这怎么可能?我需要帮助。

这是我的 XML 活动

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".DetailsActivity">

    <include
        android:id="@+id/details_appbar"
        layout="@layout/details_appbar" />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/details_appbar" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingLeft="64dp"
            android:paddingRight="64dp"
            android:paddingBottom="20dp">

            <TextView
                android:id="@+id/txt_tituloItem"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:gravity="center"
                android:text="@string/txt_tituloItem"
                android:textColor="@color/white"
                android:textSize="25sp"
                android:textStyle="bold" />

            <ImageView
                android:id="@+id/imgFoto"
                android:layout_width="200dp"
                android:layout_height="200dp"
                android:layout_gravity="center"
                android:layout_margin="20dp"
                android:contentDescription="@string/IV_item"
                android:src="@drawable/image" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/background_details_view"
                android:orientation="vertical"
                android:padding="20dp" >

                <TextView
                    android:id="@+id/txt_descripcionItem"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center"
                    android:text="@string/txt_descripcionItem"
                    android:textColor="@color/colorPrimary"
                    android:textSize="18sp"
                    android:textStyle="normal" />

                <TableLayout
                    android:id="@+id/priceLinearLayout"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:padding="16dp" >

                    <TableRow
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content" >

                        <TextView
                            android:layout_width="0dp"
                            android:layout_height="wrap_content"
                            android:layout_weight="2"
                            android:text="@string/sale"
                            android:textAppearance="?android:attr/textAppearance"
                            android:textColor="@color/colorPrimary"
                            android:textSize="20sp"
                            android:textStyle="bold" />

                        <TextView
                            android:id="@+id/txt_precioItem"
                            android:layout_width="0dp"
                            android:layout_height="wrap_content"
                            android:layout_weight="6"
                            android:gravity="center"
                            android:text="@string/precio"
                            android:textColor="@color/red"
                            android:textSize="20sp"
                            android:textStyle="bold" />
                    </TableRow>
                </TableLayout>

                <TextView
                    android:id="@+id/quantityLabel"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp"
                    android:text="@string/quantity"
                    android:textColor="@color/colorPrimary"
                    android:textSize="20sp"
                    android:textStyle="bold" />

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" >

                    <com.cepheuen.elegantnumberbutton.view.ElegantNumberButton
                        android:id="@+id/number_button"
                        android:layout_width="200dp"
                        android:layout_height="50dp"
                        android:layout_marginTop="10dp"
                        android:layout_centerInParent="true"
                        android:gravity="center"
                        app:textSize="8sp"
                        app:initialNumber="1"
                        app:backGroundColor="@color/red"/>
                </RelativeLayout>
            </LinearLayout>

            <Button
                android:id="@+id/btn_agregar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="20dp"
                android:backgroundTint="@color/red"
                android:text="@string/btn_compra"
                android:textColor="@color/white" />
        </LinearLayout>
    </ScrollView>
</RelativeLayout>

然后当我运行应用程序时,会发生这种情况

我的活动代码:

package es.businessmind.prototype;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.cepheuen.elegantnumberbutton.view.ElegantNumberButton;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.HashMap;

import es.businessmind.prototype.Model.Items;

public class DetailsActivity extends AppCompatActivity {

    TextView tituloItem, descripcionItem, precioItem, quantityLabel;
    ElegantNumberButton numberButton;
    ImageView imgItem;
    Button btnAdd;
    DatabaseReference mDB;
    FirebaseAuth mAuth;
    FirebaseUser user;
    private String UID;
    private String idProducto = "";
    private Context context = this;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_details);

        Toolbar myToolbar = findViewById(R.id.details_appbar);
        setSupportActionBar(myToolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        idProducto = getIntent().getStringExtra("ID");

        mDB = FirebaseDatabase.getInstance().getReference();
        mAuth = FirebaseAuth.getInstance();
        user = mAuth.getCurrentUser();

        tituloItem = findViewById(R.id.txt_tituloItem);
        imgItem = findViewById(R.id.imgFoto);
        descripcionItem = findViewById(R.id.txt_descripcionItem);
        precioItem = findViewById(R.id.txt_precioItem);
        quantityLabel = findViewById(R.id.quantityLabel);
        numberButton = findViewById(R.id.number_button);
        btnAdd = findViewById(R.id.btn_agregar);

        if (user != null) {
            UID = user.getUid();
        } else {
            btnAdd.setVisibility(View.GONE);
            quantityLabel.setVisibility(View.GONE);
            numberButton.setVisibility(View.GONE);
        }

        getProductDetails(idProducto);

        btnAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                addingToCartList();
            }
        });
    }

    private void getProductDetails(String idProducto) {
        mDB.child("Products").child(idProducto).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                if (snapshot.exists()) {
                    Items items = snapshot.getValue(Items.class);

                    tituloItem.setText(items.getTitulo());
                    descripcionItem.setText(items.getDescripcion());
                    precioItem.setText(items.getPrecio());
                    Glide.with(context).load(items.getUrl()).into(imgItem);
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {

            }
        });
    }

    private void addingToCartList() {
        final 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());

        mDB.child("Users").child(UID).addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                HashMap<String, Object> postValues = new HashMap<>();

                postValues.put("ID", idProducto);
                postValues.put("titulo", tituloItem.getText().toString());
                postValues.put("precio", precioItem.getText().toString());
                postValues.put("date", saveCurrentDate);
                postValues.put("time", saveCurrentTime);
                postValues.put("quantity", numberButton.getNumber());
                mDB.child("Users").child(UID).child("Cart List").child("Products").child(idProducto)
                        .updateChildren(postValues).addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
                        Toast.makeText(DetailsActivity.this, "Added to cart list", Toast.LENGTH_SHORT).show();

                        Intent intent = new Intent(DetailsActivity.this, StoreActivity.class);
                        startActivity(intent);
                    }
                });
            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {

            }
        });
    }

}

我的清单.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="es.businessmind.prototype">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_snowbmind_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".DetailsActivity"
            android:parentActivityName=".StoreActivity" />
        <activity
            android:name=".CartActivity"
            android:parentActivityName=".StoreActivity" />
        <activity
            android:name=".DetailsItems"
            android:parentActivityName=".StoreActivity" />
        <activity android:name=".StoreActivity" />
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

我的样式.xml:

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowBackground"> @drawable/background</item>
    </style>

    <style name="CustomToolbarStyle" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="android:background">@color/white</item>
        <item name="titleTextColor">@color/colorPrimary</item>
        <item name="actionOverflowButtonStyle">@style/CustomOverflowButton</item>
    </style>

    <style name="CustomOverflowButton" parent="Widget.AppCompat.ActionButton.Overflow">
        <item name="android:tint">@color/colorPrimary</item>
    </style>

    <style name="CustomPopupStyle" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:background">@color/colorPrimary</item>
        <item name="android:textColor">@color/white</item>
        <item name="overlapAnchor">false</item>
        <item name="android:dropDownVerticalOffset">-4dp</item>
    </style>

    <style name="DetailsAppbar" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your detail appbar theme here. -->
        <item name="android:background">@color/white</item>
        <item name="android:colorControlNormal">@color/colorPrimary</item>
        <item name="titleTextColor">@color/colorPrimary</item>
    </style>

    <style name="AlertDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    </style>

    <style name="NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

    <style name="AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

    <style name="PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources>

标签: javaandroidxmlfirebasefirebase-realtime-database

解决方案


推荐阅读