Android:将NumberPicker中的整数传递给另一个活动

时间:2012-12-02 06:02:41

标签: java android

我使用内置的NumberPicker让用户选择一个数字。然后用户将点击“确定”按钮进行确认,结果操作将打开另一个活动。当用户点击“确定”按钮时,我想要用户选择的号码传递给另一个活动。我已经完成了打开新活动的按钮,我知道NumberPicker有一个getValue(),你可以通过putExtra()传递东西,但我不知道如何将它们与onClick方法结合起来。我该怎么做呢?

public class Source1 extends Activity implements View.OnClickListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_1);
...(NumberPicker code)
}

@Override
public void onClick(View v) {
    int x = ((NumberPicker) v).getValue();
    Intent intent = new Intent(this, Destination.class);
    intent.putExtra("VarName", x);
    startActivity(intent);
}
}

这是我按钮的xml:

<Button
    android:id="@+id/Id_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/numberPicker1"
    android:layout_centerHorizontal="true"
    android:onClick="methodName"
    android:text="@string/Ok" />

这是我的尝试。这是对的/需要改变的吗?我是否甚至需要按钮代码中的onClick,因为我在类中使用onClick方法?

2 个答案:

答案 0 :(得分:5)

更改您的代码,以便在按钮点击时从NumberPicker获取所选值:

@Override
public void onClick(View v) {

    NumberPicker numPicker = (NumberPicker)findViewById(R.id.NumberPicker_id);
    int x = numPicker.getValue();
    Intent intent = new Intent(this, Destination.class);
    intent.putExtra("VarName", x);
    startActivity(intent);
}

答案 1 :(得分:2)

  

这是对的/需要改变什么?

测试其权利是否正确的最佳方法是:尝试阅读VarName中的Destination。但请参阅imran khan的回答。

  

我是否在按钮代码中点击onClick,因为我在类中使用onClick方法?

不,你应该选择其中一个。使用:

    XML中的
  1. onClick="methodName"public void methodName(View v) {}中的Source1

  2. implement OnClickListener并使用numberPicker.setOnClickListener(this);