gpt4 book ai didi

java - 如何使用java onclick shuffle数组

转载 作者:行者123 更新时间:2023-12-02 04:58:55 25 4
gpt4 key购买 nike

我正在学习如何在java中使用字符串和onlclick。我在下面编写了一个程序,该程序将三个名称打乱,然后将它们输出到三个按钮中。

当我单击 Paul 时,我希望消息显示在消息框中。因为保罗每次都会按扣。我很困惑如何将我的信息附加给保罗。

Paul 由于使用了数组而四处走动。我知道这是一个棘手的问题,但我也知道,有一些非常聪明的人喜欢挑战。

public class MainActivity extends ActionBarActivity {

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

}

public void generate(View view) {

String [] names = new String[3];
names[0] = "Bob";
names[1] = "Paul";
names[2] = "Mike";

Button btn_a = (Button) findViewById(R.id.a);
Button btn_b = (Button) findViewById(R.id.b);
Button btn_c = (Button) findViewById(R.id.c);
TextView message = (TextView)findViewById(R.id.message);

Arrays.asList(names);

Collections.shuffle(Arrays.asList(names));

btn_a.setText(names[0]);
btn_b.setText(names[1]);
btn_c.setText(names[2]);

}

public void a1(View view) {
}

public void b1(View view) {
}

public void c1(View view) {
}
}

最佳答案

这是 Java 中的一种技巧实际实现,其中单个监听器用于多个按钮,而不是每个按钮使用一个监听器,以便每个按钮的内容决定发生的情况,而不是每个按钮的监听器。有助于动态按钮网格(即 8x8 棋盘)不定义 64 个监听器并对它们进行全部编码。

我手头没有 Android IDE,所以这是伪代码,但您应该能够从中了解要点。

//Create a Universal Listener for all our buttons
OnClickListener listener = new View.OnClickListener() {
public void onClick(View v) {
Button b = (Button)v;
String text = b.getText().toString(); //get the button's name
if(text.equals("Paul")) {
//do anything for Paul ONLY in here
}
}
});

btn_a.setOnClickListener(listener); //give all the buttons the same listener, but only Paul's listener will do anything when you click on it
btn_b.setOnClickListener(listener);
btn_c.setOnClickListener(listener);

使用来自:http://developer.android.com/reference/android/widget/Button.html的信息和 https://stackoverflow.com/a/5620816/2958086

关于java - 如何使用java onclick shuffle数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28484686/

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