如何处理NumberPicker值的变化?

时间:2018-02-22 08:21:35

标签: java android numberpicker

我有一个包含游戏标题的NumberPicker。 我想要的是,每当一个人滚动NumberPicker并停在其中一个标题时,我就能立即处理这个动作并用EditText填写我想要的信息。

按下按钮,void onClick(View view)每次在视图上按下Button时都会处理,如何对NumberPicker执行类似的操作?

这是我的代码:

NumberPicker picker;
SharedPreferences sp;
String JsonDataGL;
String[] arrayGL;
ProgressDialog p;
GamesLibrary[] gamesArray;
String Count = "0";
EditText gameTitleET, gameContentET;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_create_post);
    sp=getSharedPreferences("JsonData", 0);
    JsonDataGL = sp.getString("JsonGL", null);

    gameTitleET = findViewById(R.id.GameTitleET); //The 2 EditTexts I want to fill with text
    gameContentET = findViewById(R.id.GameTitleET);

    JSONObject json_data = null;
    try {
        json_data = new JSONObject(JsonDataGL);
    } catch (JSONException e) {
        e.printStackTrace();
    }
    try {
        Count = json_data.getString("count");
        Log.d("Nugi32", Count);
    } catch (JSONException e) {
        e.printStackTrace();
    }
    gamesArray = new GamesLibrary[Integer.parseInt(Count)];

    picker = (NumberPicker) findViewById(R.id.numberPicker2);
    picker.setMinValue(0);
    picker.setMaxValue(Integer.parseInt(Count)-1);
    arrayGL = new String[Integer.parseInt(Count)];
    DownLoadJsonGL downLoadJsonGL = new DownLoadJsonGL();
    downLoadJsonGL.execute(JsonDataGL); //Here The NumberPicker is filled with the titles

}

你知道我该怎么办?还是带我到网上教程? 因为我在网上找不到关于这个主题的任何问题。 谢谢!

2 个答案:

答案 0 :(得分:2)

您为此目的尝试过on值更改侦听器吗?当数字选择器中的值发生变化时,将调用它。 https://developer.android.com/reference/android/widget/NumberPicker.OnValueChangeListener.html

void onValueChange (NumberPicker picker, 
                int oldVal, 
                int newVal)

答案 1 :(得分:2)

正如documentation for NumberPicker所示, 你可以用

picker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
            @Override
            public void onValueChange(NumberPicker picker, int oldVal, int newVal){
                //Process the changes here
            }
    });