java - 在 Android Studio 中创建可变 ArrayList 以保存输入文本

标签 java android arrays arraylist android-edittext

我是一个真正的编程初学者,所以请原谅我。

我有一个字符串数组,其中填充了一组引号,我有一种方法随机选择一个引号显示在屏幕上。这一切都很完美,我现在想采取下一步。我希望能够将用户在我创建的 Activity 上输入的文本添加到此数组中。我知道数组是不可变的,但我无法弄清楚如何创建 ArrayList,用我的 50 多个引号预先填充它,然后能够在以后通过应用程序添加更多内容。

这是我目前拥有的代码...

public class FactBook {
public String[] mFacts = {
            "Quote 1.",
            "Quote 2.", };

public String getFact() {

    String fact = "";
    Random randomGenerator = new Random();
    int randomNumber = randomGenerator.nextInt(mFacts.length);
    fact = mFacts[randomNumber];

    return fact;

    }

最佳答案

引用文献

ArrayList

Arrays

import java.util.ArrayList;
import java.util.Arrays;

public class FactBook {
    // Public data members are not recommended.
    // Make it at least protected and arrange controlled access to it
    // by specific methods
    public ArrayList<String> mFacts = 
       new ArrayList<String>(
                Arrays.asList("Quote 1.", "Quote 2.")
       )
    };

    public String getFact() {

        String fact = "";
        // Do you need to create a new Random every time?
        // Perhaps creating it only once and storing it in a static
        // (class wide) data member will be just as good: create it once,
        // reuse it later.
        Random randomGenerator = new Random();
        int randomNumber = randomGenerator.nextInt(mFacts.size());
        fact = mFacts.get(randomNumber);

        return fact;

    }

    // how to add
    public void add(String newQuip) {
        // Don't accept null or "all-white character" quotes
        if(null!=newQuip && newQuip.trim().length()>0) {
            this.mFacts.add(newQuip);
        }
    }
}

关于java - 在 Android Studio 中创建可变 ArrayList 以保存输入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40249364/

相关文章:

javascript - 如何从 Angular JS ng-repeat 中的数组访问第一个值

java - 为编辑文本设置特定的区域设置

java - 先前建立的随机数(java)

java - Eclipse 4.6 代码完成不适用于 Java 9

java - 如何对 char 进行 Bean 验证?

java - 使用Gson解析Json数组和没有名字的对象

javascript - Leaflet CRS.Simple on Chrome Android 分辨率低缩放

android - 如何以编程方式为相对布局设置 z-index

java 我如何将负整数读作正整数

javascript - 检查两个数组是否包含相同的对象值