将NumberPicker值显示给另一个活动的NumberPicker

时间:2017-04-23 06:48:18

标签: java android android-intent methods numberpicker

该应用包含两项活动,FirstScreenSecondScreenFirstScreen包含NumberPicker np1和按钮toSecondScreen。按下按钮toSecondScreen会将应用转移到活动SecondScreen,其中还包含NumberPicker np1sc

我想要实现的是获取从np1的NumberPicker FirstScreen中选择的值,并将其显示给SecondScreen的NumberPicker np2

到目前为止,我尝试的方法似乎被错误地使用了。下面给出了代码以及相应的错误消息。

FirstScreen.java

public class FirstScreen extends AppCompatActivity {

    Button toSecondScreen;

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

        final NumberPicker np1 = (NumberPicker) findViewById(R.id.NP1);
        np1.setMinValue(0);
        np1.setMaxValue(5);
        np1.setWrapSelectorWheel(true);

        Bundle localBundle = new Bundle();
        localBundle.putInt("NumPicker2Val", Integer.valueOf(np1.getValue()));
        Intent localIntent = new Intent(this, SecondScreen.class);
        localIntent.putExtras(localBundle);


    toSecondScreen.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent myIntent = new Intent(v.getContext(), SecondScreen.class);
            startActivityForResult(myIntent, 0);
        }
    });
    }
}

对于第二项活动,

    SecondScreen.java

public class SecondScreen extends AppCompatActivity {

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

        final NumberPicker np1sc = (NumberPicker) findViewById(R.id.NP1SC);
        np1sc.setMinValue(0);
        np1sc.setMaxValue(5);
        np1sc.setWrapSelectorWheel(true);

        String string1 = getIntent().getStringExtra("NumPicker2Val");
        np1sc.setDisplayedValues(string1);
    }
}

使用方法setDisplayedValues(string1)给我一条消息:setDisplayedValues() in NumberPicker cannot be applied to (java.lang.String)我以某种方式理解它给出的错误,但我不知道如何正确使用这些方法。

1 个答案:

答案 0 :(得分:1)

setDisplayedValues()方法接受字符串数组(对于API看起来here),因此您需要将string1转换为字符串数组并传递它,如下所示:

np1sc.setDisplayedValues(new String[] {string1});//pass string array