如何使用java onclick shuffle数组

时间:2015-02-12 18:07:47

标签: java arrays onclick shuffle

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

当我点击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) {
    }
}

1 个答案:

答案 0 :(得分:2)

这是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.htmlhttps://stackoverflow.com/a/5620816/2958086