2017-09-22 125 views
0

我試圖通過在上一個活動上使用numberpicker來更改一個活動的textview值。任何幫助,將不勝感激。使用NumberPicker在不同的活動上更改TextView [android]

這裏是我的Java從活動1

public class activity_game extends AppCompatActivity { 

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

     final NumberPicker fizzNumberPkr = (NumberPicker)findViewById(fizzNumberPicker); 
     fizzNumberPkr.setValue(3); 
     fizzNumberPkr.setMinValue(1); 
     fizzNumberPkr.setMaxValue(20); 
     fizzNumberPkr.setWrapSelectorWheel(true); 
     final NumberPicker buzzNumberPkr = (NumberPicker)findViewById(buzzNumberPicker); 
     buzzNumberPkr.setValue(5); 
     buzzNumberPkr.setMinValue(1); 
     buzzNumberPkr.setMaxValue(20); 
     buzzNumberPkr.setWrapSelectorWheel(true); 

    } 

    public void toActivityPlay (View view) { 
     Intent toActivityPlay = new Intent(this, activity_play.class); 
     toActivityPlay.putExtra("fizzNumber", fizzNumber); 
     toActivityPlay.putExtra("buzzNumber", buzzNumber); 
     startActivity(toActivityPlay); 
    } 

相關的一部分,我從活性2

public class activity_play extends AppCompatActivity { 

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

     TextView fizzNumberText = (TextView)findViewById(R.id.fizzNumber); 
     fizzNumberText.setText(getIntent().getExtras().getString("fizzNumber")); 

     if(getIntent().hasExtra("fizzNumber")) { 
      fizzNumber = getIntent().getIntArrayExtra(); 
     } else { 
      throw new IllegalArgumentException("Error: Fizz number not found"); 
     } 

相關的Java如果有,我可能沒有發佈任何相關的代碼,請讓我知道,我將編輯我的帖子。

回答

0

現在有一些想法來交流兩個活動。 您可以在第一個活動中創建一個方法setValuePicker()/ getValueFromPicker(),並在其他活動中調用getValue()。

public void setValuePicker(Parameter value){ 
    number = value; 
} 

public Parameter getValuePicker(){ 
    return value; 
} 

如果你已經設置了全局變量,只需要實現getValue()方法。

如果你有一天想使用片段需要實現回調。


編輯:

使用你的代碼是這樣的: - FirstActivity

public class MainActivity extends AppCompatActivity { 

    private int number; 
    public static final String FIZZ_TAG = "fizz_numer"; 

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

     final NumberPicker picker = (NumberPicker) findViewById(R.id.numberPicker); 
     picker.setMinValue(0); 
     picker.setMaxValue(10); 
     picker.setValue(5); 
     picker.setWrapSelectorWheel(true); 

     Button button = (Button) findViewById(R.id.button); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       number = picker.getValue(); 
       Intent intent = new Intent(getApplicationContext(), Main2Activity.class) 
         .putExtra(FIZZ_TAG,number); 
       startActivity(intent); 
      } 
     }); 
    } 
} 
  • 次活動需要是這樣的。 。 。 。 。

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main2); 
    
        int s = getIntent().getIntExtra(MainActivity.FIZZ_TAG,0); 
    
        TextView textView = (TextView) findViewById(R.id.text_test); 
        textView.setText(String.format("%s = %d","number ",s)); 
    
    } 
    
相關問題