该应用包含两项活动,FirstScreen
和SecondScreen
。 FirstScreen
包含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)
我以某种方式理解它给出的错误,但我不知道如何正确使用这些方法。
答案 0 :(得分:1)
setDisplayedValues()
方法接受字符串数组(对于API看起来here),因此您需要将string1
转换为字符串数组并传递它,如下所示:
np1sc.setDisplayedValues(new String[] {string1});//pass string array