2017-04-23 68 views
1

該應用程序包含兩個活動,FirstScreenSecondScreenFirstScreen包含NumberPicker np1和一個按鈕toSecondScreen。按下按鈕toSecondScreen將把應用程序轉移到活動SecondScreen,該活動還包含一個NumberPicker np1sc向其他活動的NumberPicker顯示NumberPicker值

什麼我試着去實現的就是從FirstScreen的NumberPicker np1選擇的值,並將其顯示在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

setDisplayedValues()方法接受字符串數組(看here爲API),所以你需要string1轉換爲字符串數組,並通過它,如下圖所示:

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

好吧,我會試試這個。感謝您的信息:) –

+0

我不認爲這是OP正在嘗試做什麼。我認爲他們只是試圖在第二個「活動」中設置_selected_值,而不是顯示值。 –

+0

是的,這就是我試圖做的,但我現在有點困惑。從顯示選定值到第二個活動的數字選擇器,設置選定值的區別是什麼? –