如何使用 java onclick 随机排列数组
how to use java onclick shuffle array
我正在学习如何在 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) {
}
}
这是 技巧 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 and
我正在学习如何在 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) {
}
}
这是 技巧 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 and