gpt4 book ai didi

java - 如何从按钮获取字符以编辑文本?

转载 作者:行者123 更新时间:2023-12-01 16:54:22 26 4
gpt4 key购买 nike

这段代码很好地工作,它生成了三个按钮,因为我有三个元素“ car”和shuffle元素
button_1“ a”,button_2“ r”,button_3“ c”,我的问题是当我单击每个按钮的键入时
在编辑文本中变为“ a a a”


//the problem was here (var button)

edittext.setText(edittext.getText().toString() + button.getText());



我试图让游戏猜这个词


    String array[]= {"car"};


int random = (int) (Math.random() * array.clone().length);

StringBuilder word = new StringBuilder(array[random]);


for (int i = 0; i < array[random].length(); i++) {

char id = 'b';
final Button button = new Button(this); //local var
button.setId(id + i);
linearLayout.addView(button);


int randIndex = new Random().nextInt(word.length());
button.setText("" + word.charAt(randIndex));
word.deleteCharAt(randIndex);

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

//******the problem was here (var button)

button.setVisibility(View.INVISIBLE);

edittext.setText(edittext.getText().toString() + button.getText());
}
});

}

最佳答案

解决以下问题:


创建一个从List0的索引的array[random].length() - 1,并使用Collections::shuffle对其进行混洗。然后,您可以使用重新排列的索引来设置按钮的标签。
在循环外声明一个Button数组,并在循环内初始化该数组。


String array[] = { "car" };

int random = (int) (Math.random() * array.length);
List<Integer> indices = new ArrayList<Integer>();
for (int i = 0; i < array[random].length(); i++) {
indices.add(i);
}
Collections.shuffle(indices);
Button[] btn = new Button[array[random].length()];
for (int j = 0; j < array[random].length(); j++) {
char id = 'b';
btn[j] = new Button(this);
btn[j].setId(id + j);
linearLayout.addView(btn[j]);
btn[j].setText("" + names_ofcolor[random].charAt(indices.get(j)));
btn[j].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
btn[j].setVisibility(View.INVISIBLE);
edittext.setText(edittext.getText().toString() + btn[j].getText());
}
});
}

关于java - 如何从按钮获取字符以编辑文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61620443/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com