package com.example.sai.generatinrandomnumbers;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
//我需要对生成的随机数进行排序,并将它们添加到我的应用程序中的第二个 editText2 中,我尝试使用集合,但我无法弄清楚,请帮助我,我在下面附加了我的代码。我应该使用又是一个数组列表??
public class MainActivity extends AppCompatActivity {
EditText editText, editText2;
Button button, button2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.editText);
editText.setEnabled(false);
editText2 = (EditText) findViewById(R.id.editText2);
editText2.setEnabled(false);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Random r = new Random();
ArrayList<Integer> num = new ArrayList<Integer>();
for (int i = 0; i < 6; i++) {
int answer = r.nextInt(10) + 1;
num.add(answer);
editText.setText(String.valueOf(num));
}
}
});
}
}
最佳答案
您需要将所有整数读入数据结构,然后将它们打印回排序后的第二个 EditText 小部件。好吧,让我们做这样的事情:
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Random r = new Random();
ArrayList<Integer> num = getRandomNums(6);
editText.setText(getStringNum(num));
Collections.sort(num);
editText2.setText(getStringNum(num));
});
private List<Integer> getRandomNums(final int theNumDigits) {
Random r = new Random();
ArrayList<Integer> num = new ArrayList<>();
for (int i = 0; i < theNumDigits; i++) {
int answer = r.nextInt(10) + 1;
num.add(answer);
}
return num;
}
private String getStringNum(final List<Integer> theNumbers) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < theNumbers.size(); i++) {
sb.append(num.get(i));
}
String toReturn = sb.toString();
sb.setLength(0);
return toReturn;
}
我为您重新格式化了代码,以帮助您准确理解发生了什么。您将获取所有随机生成的数字并将它们添加到 ArrayList 中。然后使用 StringBuilder 创建一个字符串每次循环迭代时,您都会覆盖 EditText 中之前设置的值
然后调用 Collections.sort() 并重新执行整个过程。
关于java - 我需要对生成的随机数进行排序并将它们添加到第二个 editText2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32128455/