0

組み込みのNumberPickerを使用して、ユーザーに番号を選択させています。次に、ユーザーは[OK]ボタンを押して確認すると、結果のアクションによって別のアクティビティが開きます。ユーザーが「OK」ボタンを押したときに、ユーザーが選択した番号を他のアクティビティに渡すようにしたい。新しいアクティビティを開くボタンを作成しました。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

これは正しいですか/何を変更する必要がありますか?

その権利があるかどうかをテストする最良の方法は、次のとおりです。を読み込んVarNameでみてくださいDestination。しかし、イムラン・カーンの答えを参照してください。

クラスでonClickメソッドを使用しているので、ボタンコードのonClickも使用できますか?

いいえ、どちらかを選択する必要があります。次のいずれかを使用します。

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

  2. implement OnClickListenerを使用しますnumberPicker.setOnClickListener(this);

于 2012-12-02T06:10:14.107 に答える