Как добавить char из String Array к кнопке? - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть два массива: имена первого массива цвета, второй алфавит массива. Я хочу добавить буквенные названия цветов к моим кнопкам и дополнить другие кнопки буквами алфавита с произвольными буквами. Кроме того, у меня есть два LinearLayout, каждый из которых содержит семь кнопок. но в моем коде LinearLayout один не имеет семь цветных видео Youtube

import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;



public class MainActivity extends AppCompatActivity {

    TextView answer;
    ImageView img;






    int i = 0;


    String names[] = {"black", "blue", "gray", "green", "orange", "red", "white", "yallow"};
    String alphabet = "abcdefghijklmnopqrstuvwxyz";

    Integer colors[] = {Integer.valueOf(R.drawable.black),
            Integer.valueOf(R.drawable.blue),
            Integer.valueOf(R.drawable.gray),
            Integer.valueOf(R.drawable.green),
            Integer.valueOf(R.drawable.orange),
            Integer.valueOf(R.drawable.red),
            Integer.valueOf(R.drawable.white),
            Integer.valueOf(R.drawable.yallow),};



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

        answer = findViewById(R.id.answer);
        img = findViewById(R.id.img);






        CreatButtons();


    }



    public void CreatButtons() {


        //buttons size
        int w = 90;
        int h = 90;



        LinearLayout.LayoutParams btnsize = new LinearLayout.LayoutParams(w, h);




        btnsize.setMargins(5, 5, 5, 5);


        //random number from array
        final int random = (int) (Math.random() * names.length);


        for (int j = 0; j < names[random].length(); j++) {



            //buttons id
            final char a = 'a';
            final char b = 'b';


            //LinearLayout 1
            LinearLayout btnbg = (LinearLayout)findViewById(R.id.btnbg);
            //LinearLayout 2
            LinearLayout btnbg2 = (LinearLayout)findViewById(R.id.btnbg2);




            btnbg.setGravity(Gravity.CENTER);
            btnbg2.setGravity(Gravity.CENTER);





            btnbg.setOrientation(LinearLayout.HORIZONTAL);
            btnbg2.setOrientation(LinearLayout.HORIZONTAL);



                 //add button in LinearLayout 1
            final Button btn = new Button(this);

            btn.setId(a + j);
            btn.setLayoutParams(btnsize);
            btn.setBackgroundColor(Color.WHITE);
            btn.setTextSize(18);
            btnbg.addView(btn);
            btnbg.setGravity(Gravity.FILL_HORIZONTAL);

            //add button in LinearLayout 2
            final Button btn2 = new Button(this);

            btn2.setId(b + j);
            btn2.setLayoutParams(btnsize);
            btn2.setBackgroundColor(Color.WHITE);
            btn2.setTextSize(18);
            btnbg2.addView(btn2);
            btnbg2.setGravity(Gravity.FILL_HORIZONTAL);









            btn.setText("" + names[random].charAt(j));
            btn2.setText("" + alphabet.charAt(j));



            img.setImageResource(colors[random]);
            //click listener
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {


                    btn.setVisibility(View.INVISIBLE);

                    answer.setText(answer.getText().toString() + btn.getText());

                    Handler handler = new Handler();
                    handler.postDelayed(new Runnable() {
                        @Override
                        public void run() {


                            if (answer.getText().toString().equals(names[random])) {



                                answer.setText("");


                                CreatButtons();

                            } else {

                                //wrong Answer


                            }

                        }
                    }, 2000);





                }


            });

            btn2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {


                    btn2.setVisibility(View.INVISIBLE);

                    answer.setText(answer.getText().toString() + btn2.getText());

                    Handler handler = new Handler();
                    handler.postDelayed(new Runnable() {
                        @Override
                        public void run() {


                            if (answer.getText().toString().equals(names[random])) {



                                answer.setText("");


                                CreatButtons();

                            } else {

                                //wrong Answer

                            }

                        }
                    }, 2000);





                }


            });




        }



    }

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