使用NumberPicker在不同的活动上更改TextView [android]

问题描述:

我试图通过在上一个活动上使用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如果有,我可能没有发布任何相关的代码,请让我知道,我将编辑我的帖子。

现在有一些想法来交流两个活动。 您可以在第一个活动中创建一个方法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)); 
    
    }