java - 如何使用java onclick shuffle数组

标签 java arrays onclick shuffle

我正在学习如何在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/

相关文章:

java - 使用 jxl(java) 为 HYPERLINK 编写 excel 公式失败

javascript - PaperJs 在同一个项目中添加 2 个栅格作为 2 个符号

android - 如何使用代码模拟按钮单击?

java - 在 jbutton 中序列化对象

java - 使用与 Spring Batch 相同的输入参数启 Action 业时,Liberty Batch 不会引发异常(JobInstanceAlreadyExistsException)

python - 检查 float 是否接近存储在数组中的任何 float

javascript - 我可以使用 getElementById 更改其 onclick 事件值吗?

列表上的 Jquery 单击事件在 Firefox 和其他浏览器中的工作方式不同

java - [JAVA]如何创建排名系统并将其保存到.txt 文件?

Python 创建空的二维数组