Ich möchte eine Nummernauswahl verwenden, um den Rabatt Prozentsatz vom Benutzer zu erhalten. Sobald der Benutzer den Verkaufspreis eingegeben hat, möchte ich ein Dialogfeld erscheinen, in dem Sie nach dem Rabattprozentsatz gefragt werden. Ich finde keine Möglichkeit, den Nummernpicker in den Dialog zu integrieren.Wie Nummer-Picker mit Dialogfeld zu verwenden
Antwort
ich eine kleine Demo von Number gemacht haben. Dies ist möglicherweise nicht perfekt, aber Sie können dasselbe verwenden und ändern.
Verwenden Sie ein benutzerdefiniertes Dialogfeld und legen Sie die Zahlenauswahl fest.
Mehr info @
http://developer.android.com/reference/android/widget/NumberPicker.html
public class MainActivity extends Activity implements NumberPicker.OnValueChangeListener
{
private TextView tv;
static Dialog d ;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.textView1);
Button b = (Button) findViewById(R.id.button11);// on click of button display the dialog
b.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
show();
}
});
}
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
Log.i("value is",""+newVal);
}
public void show()
{
final Dialog d = new Dialog(MainActivity.this);
d.setTitle("NumberPicker");
d.setContentView(R.layout.dialog);
Button b1 = (Button) d.findViewById(R.id.button1);
Button b2 = (Button) d.findViewById(R.id.button2);
final NumberPicker np = (NumberPicker) d.findViewById(R.id.numberPicker1);
np.setMaxValue(100); // max value 100
np.setMinValue(0); // min value 0
np.setWrapSelectorWheel(false);
np.setOnValueChangedListener(this);
b1.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
tv.setText(String.valueOf(np.getValue())); //set the value to textview
d.dismiss();
}
});
b2.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
d.dismiss(); // dismiss the dialog
}
});
d.show();
}
}
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<Button
android:id="@+id/button11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="Open" />
</RelativeLayout>
dialog.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<NumberPicker
android:id="@+id/numberPicker1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="64dp" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/numberPicker1"
android:layout_marginLeft="20dp"
android:layout_marginTop="98dp"
android:layout_toRightOf="@+id/numberPicker1"
android:text="Cancel" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button2"
android:layout_alignBottom="@+id/button2"
android:layout_marginRight="16dp"
android:layout_toLeftOf="@+id/numberPicker1"
android:text="Set" />
</RelativeLayout>
Snap-Schuss
ich bin ein Hintergrundbild mit mit gepunkteten Linien, jetzt möchte ich den Benutzer auf die gepunkteten Linien zu zeichnen, und ich muss es bestätigen, ob es richtig ist oder nicht? Ist es in Canvas möglich und wie kann ich damit fortfahren? – user2841300
@Raghunandan: Gibt es eine Möglichkeit, den Picker beim Klicken auf den Mittelwert zu schließen? Ich meine, es gibt 3 Werte sichtbar, wenn ich auf ausgewählten Wert klicken, wird der Number verschwinden? Ohne die Ok/Cancel-Taste zu benutzen.Ich habe onClick Methode von NumberPicker aber keine Ausgabe versucht. :( –
Dies kann in viel weniger Code erfolgen: http://Stackoverflow.com/a/40007699/1496122 – k2col
Bitte versuchen Sie den folgenden Code:
RelativeLayout linearLayout = new RelativeLayout(mContext);
final NumberPicker aNumberPicker = new NumberPicker(mContext);
aNumberPicker.setMaxValue(50);
aNumberPicker.setMinValue(1);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(50, 50);
RelativeLayout.LayoutParams numPicerParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
numPicerParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
linearLayout.setLayoutParams(params);
linearLayout.addView(aNumberPicker,numPicerParams);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(mContext);
alertDialogBuilder.setTitle("Select the number");
alertDialogBuilder.setView(linearLayout);
alertDialogBuilder
.setCancelable(false)
.setPositiveButton("Ok",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
Log.e("","New Quantity Value : "+ aNumberPicker.getValue());
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
dialog.cancel();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
Dieser Code ist perfekt läuft gut auch für mich. Ich möchte einen weiteren Zahlenwähler hinzufügen. Ich kann es erreichen, aber nicht formatieren. Können Sie mir helfen, die gleiche Breite auf zwei Zahlenauswahl mit nur Java einzustellen. –
Schön! Danke vielmals. Dies verwendet die Android-Plattform-Tasten, also ist dies die eine zu gehen. Sparte mir viel Zeit. –
Ich habe diese Antwort gewählt, weil das Fummeln mit einem XML-Layout nur für einen Dialog zu mühsam ist. Dieser sah auch besser aus, als ich ihn implementiert habe. – LordParsley
Das ist viel kürzer Variation der anderen Antworten
final NumberPicker picker = new NumberPicker(context);
picker.setMinValue(1);
picker.setMaxValue(50);
final FrameLayout layout = new FrameLayout(context);
layout.addView(picker, new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.WRAP_CONTENT,
FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.CENTER));
new AlertDialog.Builder(context)
.setView(layout)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// do something with picker.getValue()
}
})
.setNegativeButton(android.R.string.cancel, null)
.show();
Es funktioniert Eigenschaft.Ich benutze in einem EditText, Einstellung auffokusable auf False und Einstellung der OnClickListener machen die Ansicht "single" klickbar. Danke! – brunoramonalmeida
eine DialogFragment erstellen onCreateDialog Verfahren implementiert, die die Ansicht enthält Number Warnmeldung zurückgibt. das Dialogfragment in der Aktivität Instantiate, wo Sie brauchen Anzahl Picker Dialog zu zeigen, und es zeigen.
Aktivieren Sie die Host-Aktivität, um die Schnittstelle "NumberPicker.OnValueChangeListener" zu implementieren, sodass positive und negative Klickereignishandler im Dialogfeld den aktuellen Wert von NumberPicker übergeben können, indem sie die onValueChange-Methode aufrufen.
Für weitere Informationen können Sie sehen http://www.zoftino.com/android-numberpicker-dialog-example.
public class NumberPickerDialog extends DialogFragment {
private NumberPicker.OnValueChangeListener valueChangeListener;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final NumberPicker numberPicker = new NumberPicker(getActivity());
numberPicker.setMinValue(20);
numberPicker.setMaxValue(60);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Choose Value");
builder.setMessage("Choose a number :");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
valueChangeListener.onValueChange(numberPicker,
numberPicker.getValue(), numberPicker.getValue());
}
});
builder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
valueChangeListener.onValueChange(numberPicker,
numberPicker.getValue(), numberPicker.getValue());
}
});
builder.setView(numberPicker);
return builder.create();
}
public NumberPicker.OnValueChangeListener getValueChangeListener() {
return valueChangeListener;
}
public void setValueChangeListener(NumberPicker.OnValueChangeListener valueChangeListener) {
this.valueChangeListener = valueChangeListener;
}
}
- 1. Anpassen des Android-NummerPicker
- 2. Wie Papier-Dialogfeld Polymer-Element zu verwenden?
- 3. wie JComboBox verwenden mit Enum in Dialogfeld
- 4. Wie Bootbox zu schließen, wenn benutzerdefinierte Dialogfeld verwenden
- 5. Verwenden von jQuery im CKFinder-Dialogfeld
- 6. Transluzentes Dialogfeld mit Rand
- 7. Dialogfeld mit EditText und Spinner
- 8. VBA-Code zu umgehen Dialogfeld
- 9. Verwenden Sie htmlunit, wie man modales Dialogfeld Element
- 10. wie MultiChoiceItems android Dialogfeld
- 11. jquery mit asp.net mvc Dialogfeld
- 12. Jquery modales Dialogfeld mit iframe
- 13. In Javascript, wie Dialogfeld aufrufen?
- 14. Hinzufügen einer Schaltfläche zu einem Dialogfeld dynamisch
- 15. jQuery Dialogfeld
- 16. jquery Dialogfeld
- 17. jQuery Dialog zu Element im Dialogfeld scrollen
- 18. Set DialogResult ohne das Dialogfeld zu schließen
- 19. Dialogfeld datePicker Grenzen - Android
- 20. jQuery Movable Modal Dialogfeld
- 21. Android ICS-Dialogfeld Titelfarbe
- 22. WPF benutzerdefinierte Fehlerbehandlung Dialogfeld?
- 23. Modal Dialogfeld
- 24. Wie kann ich Django mit einem JqueryUI-Dialogfeld integrieren?
- 25. Verwenden von jQuery Resizable Helper für ein Dialogfeld
- 26. Emacs: ärgerlich Flymake Dialogfeld
- 27. MagicZoom- und JQuery-Dialogfeld
- 28. Verwenden von benutzerdefiniertem Dialogfeld in benutzerdefinierter Listenansicht klicken
- 29. GWT - Datei auf den Server hochladen, ohne das FileUpload-Dialogfeld zu verwenden
- 30. Einblenden im modalen Dialogfeld
Google ** Alarm Dialog ** und sehen diese [Antwort] (http://stackoverflow.com/a/27263520/1341526) – jacktrades