У меня есть два массива: имена первого массива цвета, второй алфавит массива. Я хочу добавить буквенные названия цветов к моим кнопкам и дополнить другие кнопки буквами алфавита с произвольными буквами. Кроме того, у меня есть два 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);
}
});
}
}
}