Hallo,
ich bin noch ziemlich neu in der Android Entwicklung! Im Moment stehe ich vor der Herausforderung, dass ich keine Möglichkeit habe, EditText so zu konfigurieren, dass negative Dezimalwerte akzeptiert werden. Ich kann nur entweder NumberSigned im Input Type festlegen oder eben NumberDecimal, dann werden aber logischerweise nur positive Werte akzeptiert. Wenn ich NumberSigned als EditText Typ auswähle und dann Number Decimal anlege, wird das denke ich mal nichts ändern, oder? Denn der inputType entscheidet ja was ich eingeben darf also vom Keyboard her... Eine Idee von mir wäre einfach Plain Text, dann darf ich jedenfalls alles eingeben, aber wie komme ich dann zu einem DoubleWert, den ich tatsächlich brauche? Mit der Umwandlungsmethode? Also String to Double? Kann es sein, dass es nur so geht? Hintergrund der ganzen Geschichte ist, dass ich Geocoordinaten abfragen und damit rechnen möchte! Ich hab versucht mich auf diversen Websites schlau zu machen, aber die lösen alle nicht wirklich mein Problem... Wenn ich ggf das ganz anders mache und Google Maps implementiere und die Standorte dort auswähle kann ich dann die Werte, die ich bekomme so übertragen, dass ein Rechnen damit möglich ist? Natürlich könnte ich auch einfach Google Earth für die Entfernungsmessung nutzen und dann einfach eingeben, das wird dann sowieso immer ein positiver Wert, und dann damit weiter arbeiten innerhalb meiner App aber ich hätte gern alles aus einer Hand... Ist das irgendwie machbar?
So sieht momentan der Java Code der zugehörigen Klasse aus:
Anmerkung: in C++ habe ich bereits ein ansehnliches Konsolenprogramm geschrieben, das diesen Zweck erfüllt, aber ich möchte das Ganze einfach als App am Smartphone haben....
Die XML zur Activity sieht so aus (Auszug):
Vielen Dank vorab für eure Hilfe!
LG
Martin
ich bin noch ziemlich neu in der Android Entwicklung! Im Moment stehe ich vor der Herausforderung, dass ich keine Möglichkeit habe, EditText so zu konfigurieren, dass negative Dezimalwerte akzeptiert werden. Ich kann nur entweder NumberSigned im Input Type festlegen oder eben NumberDecimal, dann werden aber logischerweise nur positive Werte akzeptiert. Wenn ich NumberSigned als EditText Typ auswähle und dann Number Decimal anlege, wird das denke ich mal nichts ändern, oder? Denn der inputType entscheidet ja was ich eingeben darf also vom Keyboard her... Eine Idee von mir wäre einfach Plain Text, dann darf ich jedenfalls alles eingeben, aber wie komme ich dann zu einem DoubleWert, den ich tatsächlich brauche? Mit der Umwandlungsmethode? Also String to Double? Kann es sein, dass es nur so geht? Hintergrund der ganzen Geschichte ist, dass ich Geocoordinaten abfragen und damit rechnen möchte! Ich hab versucht mich auf diversen Websites schlau zu machen, aber die lösen alle nicht wirklich mein Problem... Wenn ich ggf das ganz anders mache und Google Maps implementiere und die Standorte dort auswähle kann ich dann die Werte, die ich bekomme so übertragen, dass ein Rechnen damit möglich ist? Natürlich könnte ich auch einfach Google Earth für die Entfernungsmessung nutzen und dann einfach eingeben, das wird dann sowieso immer ein positiver Wert, und dann damit weiter arbeiten innerhalb meiner App aber ich hätte gern alles aus einer Hand... Ist das irgendwie machbar?
So sieht momentan der Java Code der zugehörigen Klasse aus:
Java:
package com.androidnewcomer.flighthelper;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.speech.tts.TextToSpeech;
import android.view.View;
import android.widget.Button;
public class RoutePlannerActivity extends AppCompatActivity implements TextToSpeech.OnInitListener, View.OnClickListener {
private TextToSpeech tts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_routeplanner);
tts = new TextToSpeech(this, this);
Button button=(Button) findViewById(R.id.button);
button.setOnClickListener(this::onClick);
}
@Override
public void onInit(int status) {
tts.speak("Please provide the requested values for your start and destination!", TextToSpeech.QUEUE_FLUSH, null, null);
}
@Override
public void onClick(View v) {
tts.speak("Calculating, please Wait...", TextToSpeech.QUEUE_FLUSH, null, null);
// Calculations: see CodeBlocks / FlightManager101.cdp
// Activity:
}
}
Anmerkung: in C++ habe ich bereits ein ansehnliches Konsolenprogramm geschrieben, das diesen Zweck erfüllt, aber ich möchte das Ganze einfach als App am Smartphone haben....
Die XML zur Activity sieht so aus (Auszug):
Java:
<EditText
android:id="@+id/editTextNumberDecimal5"
android:layout_width="389dp"
android:layout_height="55dp"
android:layout_marginStart="2dp"
android:layout_marginTop="11dp"
android:layout_marginEnd="2dp"
android:layout_marginBottom="307dp"
android:background="@color/white"
android:ems="10"
android:gravity="center_horizontal|center_vertical"
android:hint="@string/CoordinatesHint0"
android:importantForAutofill="no"
android:inputType="numberDecimal"
android:text="@string/Start"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView17"
tools:visibility="visible" />
Vielen Dank vorab für eure Hilfe!
LG
Martin