首页 > 解决方案 > 如何从我的 Android 应用程序中的 Java 代码在我的布局上添加 NumberPicker?

问题描述

我正在制作一个简单的应用程序。我想从我的 Java 代码中添加 NumberPicker,但是当我运行它时,应用程序会立即关闭。有人可以告诉我错误在哪里吗?我知道我可以在 XML 中添加它,但我想从 Java 代码中添加它。

非常感谢

package com.example.openwebpage;

import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;

import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.NumberPicker;

public class MainActivity extends AppCompatActivity {
    NumberPicker np;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ConstraintLayout layout = (ConstraintLayout) findViewById(R.id.layout);
        String[] displayed = {"1","2","3"};

        np = new NumberPicker(this);
        ConstraintLayout.LayoutParams layoutParams = new ConstraintLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        np.setLayoutParams(layoutParams);

        np.setDisplayedValues(displayed);
        np.scrollBy(0,3);
        np.setMinValue(0);
        np.setMaxValue(3);

        np.setWrapSelectorWheel(true);

        layout.addView(np);


    }
}

标签: javaandroidandroid-studioandroid-layoutandroid-number-picker

解决方案


您需要更新此代码段:

np.scrollBy(0,2);
np.setMinValue(0);
np.setMaxValue(2);

异常是由于 setMaxValue(3) 导致的数组索引超出范围。


推荐阅读