NumberPicker mit Kommazahl

  • Antworten:3
merlin2105
  • Forum-Beiträge: 3

13.12.2012, 20:54:37 via Website

Hallo,
ich bin Android/Eclipse Anfänger und bin gerade am Lernen ..:-)

ich schreibe mir gerade eine App mit der ich aus 2 werten etwas errechne , diese werte würde ich gerne mit einem NumberPicker einstellen,
das funktioniert bei meinem ersten wert ganz gut, dieser besteht aus einer ganz Zahl von 0 bis 9.

der zweite wert hat aber eine Komma Zahl (7.2) , diesen wert möchte ich mit 2 Numberpicker in das Textfeld schreiben,
also 1 Picker für vor komma zahl, und 1 picker für die nachkommazahl.

ich hab schon std mit google verbracht, ohne erfolg.!

hat evtl. jemand eine Lösung, oder einen Link zu einem Sample code!

Vielen Dank

Antworten
Florian B.
  • Forum-Beiträge: 284

13.12.2012, 21:31:31 via Website

Wo genau liegt das Problem?

Die beiden Werte der NumberPickers in ein float umzuwandeln?

Du liest von beiden NumberPickers jeweils die Werte mit getValue() aus. Dann hast du zwei int Werte. Die fügst du zu einem String zusammen.

1String commaValue = intValueNumPick1 + "." + intValueNumPick2;
2
3Float value = Float.parseFloat(commaValue);

— geändert am 13.12.2012, 21:33:29

Antworten
merlin2105
  • Forum-Beiträge: 3

13.12.2012, 22:12:36 via Website

Ok Danke erstmal, das ist für jemanden der Android/Java richtig Programmieren kann denk ich ne kleinigkeit, aber für mich anfänger...:-)

ich verstehe zwar was du geschrieben hast, bekomme es aber nicht hin...

hier mal mein Code..(aber nicht Lachen..) funktioniert ja auch, nur eben mit dem pickera + pickerb nicht...

public void setupUI()
{



khx = (TextView) findViewById(R.id.kh_wert);
picka = (TextView) findViewById(R.id.ph_wert);
pickb = (TextView) findViewById(R.id.ph_wert);


NumberPicker kp = (NumberPicker) findViewById(R.id.kh_picker);

NumberPicker px = (NumberPicker) findViewById(R.id.pickera);
NumberPicker py = (NumberPicker) findViewById(R.id.pickerb);

kp.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
px.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
py.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);



kp.setOnValueChangedListener(new OnValueChangeListener()
{
public void onValueChange(NumberPicker picker, int oldVal,
int newVal)
{
khx.setText(String.valueOf(newVal));

}
});

px.setOnValueChangedListener(new OnValueChangeListener()
{
public void onValueChange(NumberPicker picker, int oldVal,
int newVal)
{
picka.setText(String.valueOf(newVal));

}
});

py.setOnValueChangedListener(new OnValueChangeListener()
{
public void onValueChange(NumberPicker picker, int oldVal,
int newVal)
{
pickb.setText(String.valueOf(newVal));

}
});

kp.setMaxValue(9);
kp.setMinValue(1);
kp.setValue(7);

px.setMaxValue(9);
px.setMinValue(1);
px.setValue(7);

py.setMaxValue(9);
py.setMinValue(1);
py.setValue(7);


}

wo und wie müsste ich deinen code jetzt einfügen das ich in dem Textfeld ph_wert meine kommazahl aus den beiden Pickern habe..

Danke schon mal für die mühe!

Antworten
merlin2105
  • Forum-Beiträge: 3

14.12.2012, 15:40:39 via Website

Es wäre wahrscheinlich auch einfacher die 2 werte aus den Textfeldern direkt beim berechne zusammenzufügen zu einer Kommazahl (7.2),
hab aber auch hier heute schon std. damit verbracht,und mit deinem Code die beiden zahlen die ich per NumberPicker jetzt in 2 Textfelder schreibe in der Formel mit einzubauen!

public void ButtonKlick (View view ){
double kh;
double ph;
double pha;
double co2_ergebnis;




EditText KH = (EditText)findViewById(R.id.kh_wert);
EditText PH = (EditText)findViewById(R.id.ph_wert);
EditText PHX = (EditText)findViewById(R.id.ph_wert_a);

EditText Feldergebnis_co2 = (EditText)findViewById(R.id.co2_ergebnis);

if (KH.getText().toString().length() == 0) {
KH.setText(String.valueOf("0"));

}
if (PH.getText().toString().length() == 0) {
PH.setText(String.valueOf("0"));

}
if (PHX.getText().toString().length() == 0) {
PHX.setText(String.valueOf("0"));

}

kh = Float.valueOf(KH.getText().toString());
ph = Float.valueOf(PH.getText().toString());
pha = Float.valueOf(PHX.getText().toString());

co2_ergebnis=Math.floor(kh/2.8*Math.pow(10,7.90-ph));

Feldergebnis_co2.setText(String.valueOf(co2_ergebnis));

}

die 2 TextFelder wären :
EditText PH = (EditText)findViewById(R.id.ph_wert);
EditText PHX = (EditText)findViewById(R.id.ph_wert_a);
die 2 einzelnen zahlen aus ph_wert + ph_wert_a sollten jetzt ja die commazahl ergeben , die ich dann in meiner Formel:

co2_ergebnis=Math.floor(kh/2.8*Math.pow(10,7.90-ph)); anstatt ph brauche...

man ist das alles kompliziert!
Vielen Dank schon mal für eure Hilfe!

Antworten