Как можно установить мою кнопку случайным цветом на фоне.Android - PullRequest
0 голосов
/ 06 февраля 2019

Извините за мой плохой английский. Я новичок в Android, и теперь я застрял.

Теперь мой вопрос: как я могу установить случайные цвета на фон с помощью OnClickListener.Может быть, вы можете помочь мне с этой проблемой?

У меня есть один класс (Kleurenpalet.java)

 package com.example.pstek.randomcolor;

import android.graphics.Color;

import java.util.Random;

public class Kleurenpalet{

    private static String[] kleur = {
            "#39add1", // light blue
            "#3079ab", // dark blue
            "#3FD52D", // green
            "FFFF0000", // red

            ""};

    public  int getRandomColor() {
        Random rand = new Random();
        int color = rand.nextInt(kleur.length);

        return Color.parseColor(kleur[color]);
    }

}

И у меня есть мой основной класс:

package com.example.pstek.tegeltjeswijsheid;

import android.support.constraint.ConstraintLayout;
import android.support.constraint.solver.widgets.ConstraintWidget;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Layout;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.util.Random;

public class MainActivity extends AppCompatActivity {
    private ConstraintLayout layout;
    private Button randombutton;
    int randomColor = new Kleurenpalet().getRandomColor();



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

        layout = findViewById(R.id.layout);

        randombutton = findViewById(R.id.button);



        randombutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                layout.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), ;
            }
        });
    }
}

Ответы [ 4 ]

0 голосов
/ 12 февраля 2019

Вы должны поместить «Случайное число» и «Цвет набора макетов» в событие нажатия кнопки:

randombutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int randomColor = new Kleurenpalet().getRandomColor();
            layout.setBackgroundColor(randomColor);
        }
     });
0 голосов
/ 06 февраля 2019

Я не понимаю, что вы пытаетесь сделать здесь:

layout.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), ;

Почему вы оставили там пустое место?Более того, если вы анализируете цвет в вашем Kleurenpalet, вы должны использовать без ContextCompat.Просто установите свой цвет следующим образом:

layout.setBackgroundColor(randomColor);

ContextCompat - это для анализа цвета из файла ресурсов , например:

layout.setBackgroundColor(
        ContextCompat.getColor(
            getApplicationContext(), 
            R.color.colorPrimary
    )
);
0 голосов
/ 07 февраля 2019

в коде MainActivity это:

  public class MainActivity extends AppCompatActivity {
  private ConstraintLayout layout;
  private Button randombutton;

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

    layout = findViewById(R.id.layout);

    randombutton = findViewById(R.id.button);



    randombutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int randomColor = new Kleurenpalet().getRandomColor();
            layout.setBackgroundColor(randomColor);
        }
     });
    }
    }
0 голосов
/ 06 февраля 2019

Возможно, позвоните setBackgroundColor с инициализированным цветом:

layout.setBackgroundColor(randomColor);

Или каждый раз по-другому:

layout.setBackgroundColor(new Kleurenpalet().getRandomColor());
...