java - 我需要对生成的随机数进行排序并将它们添加到第二个 editText2

标签 java android

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/

相关文章:

java - 停止 neo4j jdbc 将查询打印到控制台

java - 为什么我的 Play 没有!显示验证错误?

android - Paypal Android SDK 可以询问送货地址吗?

android - BroadcastReceiver 的动态注册与静态注册

Java runOnUiThread 和 Thread.sleep

java - 检查数组是否在java中递归排序

java - 尝试在数据库中加载 blob 时,为什么会出现 java.lang.AbstractMethodError?

android - Apple 彩色表情符号字体如何工作,是否有 Android 版本?

java - 不可用的共享库 - INSTALL_FAILED_MISSING_SHARED_LIBRARY

java - 如何使用Jetty取消阅读请求?