android - 为什么 oncreate 事件中的方法不起作用?

标签 android methods

我有一个像这样的私有(private)方法

private void acaknomor() {
    List<Integer> generated = new ArrayList<Integer>();
    for (int i = 0; i <= 4; i++) {
        while (true) {
            Integer next = ran.nextInt(4 + 1) + 0;
            if (!generated.contains(next)) {
                generated.add(next);
                break;
            }
        }
    }
    int[] arrayAcak = new int[generated.size()];
    for (int i = 0; i < generated.size(); i++) {
        arrayAcak[i] = generated.get(i);
    }
}

我在 oncreate 中调用该方法并通过单击按钮进行测试以显示列表值,如下所示:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    acaknomor();

    btn_next.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Toast.makeText(getApplicationContext(), String.valueOf(generated), Toast.LENGTH_SHORT).show();
        }
    });

问题是为什么当我将 toast 放入方法中时它显示 null,而不是显示“0,1,2,3,4”?

我在没有方法的情况下测试了我的代码(将其原始放入 oncreate 事件 并且它有效...)

最佳答案

您正在声明 List<Integer> generated = new ArrayList<Integer>();里面的方法acaknomor() .所以它对于 Toast 是不可见的。

我建议你在类级别声明它。

已生成私有(private)列表;

现在里面acaknomor()

private void acaknomor() {
    generated = new ArrayList<Integer>();           // Modify this line
    for (int i = 0; i <= 4; i++) {
    ...

关于android - 为什么 oncreate 事件中的方法不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21898642/

相关文章:

java - 错误 : cannot access InternalTokenProvider (Firebase/GooglePlayServices)

Java——多个类

android - logcat 中的 GC_FOR_ALLOC 过多

android - Gradle Android Studio 集成

java - 调试我的第一个类。使用用户输入创建一个圆圈

Javascript .replace() 在 Chrome 中全局不起作用

java - .jsp 页面没有看到编译后的 java .class 文件中新添加的函数

java - 一个字符串中有多个方法?

java - Flutter WebView 在 html select 上崩溃

android - 在 Android 上加载 libpthread.so 时出错