传递微调器值

时间:2011-12-08 18:12:26

标签: java android spinner

我正在尝试编写一种方法来将两个微调器中的值传递给另一个活动。

我在网上找到了使用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);

          }

        });
}

感谢。

2 个答案:

答案 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());
...