我正在尝试编写一种方法来将两个微调器中的值传递给另一个活动。
我在网上找到了使用putExtra方法的例子,但是我自己实现它很困难(我想我还不清楚它是如何工作的。)
我的代码是(在putExtra方法中没有任何值,因为那是我坚持的一点):
public void addListenerOnButton() {
transportSpinner = (Spinner) findViewById(R.id.transportSpinner);
locationSpinner = (Spinner) findViewById(R.id.locationSpinner);
buttonSubmit = (Button) findViewById(R.id.buttonSubmit);
buttonSubmit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(GetDirections.this.getApplicationContext(), DirectionDisplay.class);
i.putExtra();
GetDirections.this.startActivity(i);
}
});
}
感谢。
答案 0 :(得分:2)
以gwa的回答为基础:
在此屏幕上你需要做的意图(假设你的微调器具有正确的值):
Intent i = new Intent(GetDirections.this.getApplicationContext(), DirectionDisplay.class);
i.putExtra("transportSpinnerValue", transportSpinner.getSelectedItem().toString());
i.putExtra("locationSpinnerValue", locationSpinner.getSelectedItem().toString());
GetDirections.this.startActivity(i);
然后在下一个屏幕中,您必须检索这些值。由于您在Intent中传递了额外信息,因此您必须从下一个类中的intent获取它。
所以:
//DirectionsDisplay class
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
String transportItemChosen = extras.getString("transportSpinnerValue");
String locationItemChosen = extras.getString("locationSpinnerValue");
}
答案 1 :(得分:1)
假设您的微调器已正确填充,您可以执行以下操作:
...
i.putExtra("transportSpinnerSelected", transportSpinner.getSelectedItem());
i.putExtra("locationSpinnerSelected", locationSpinner.getSelectedItem());
...