使用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)); }