0

我正在使用内置的 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 吗?

4

2 回答 2

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);
}
于 2012-12-02T06:13:31.850 回答
2

这是正确的/需要改变什么?

测试它是否正确的最好方法是:尝试读VarNameDestination. 但请参阅伊姆兰汗的回答。

因为我在类中使用 onClick 方法,所以我什至在按钮代码中使用 onClick 吗?

不,您应该选择其中之一。要么使用:

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

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

于 2012-12-02T06:10:14.107 回答