Beiträge von Apri

    Hallo!
    Ich habe mal eine Frage: Welchen Unterschied macht es eigentlich genau, ob ich etwas in einen Thread packe oder in einen Service? Ich versteht den Unterschied noch nicht ganz.


    Ich habe folgende Situation: Wir haben einen Arduino, mit dem eine Bluetooth-Verbindung hergestellt wird und der im Sekundentakt Integer-Werte sendet. Ich kann diese in meiner App empfangen. Die Werte lese ich in einer Activity im Sekundentakt ein und gebe füge sie in ein TextView ein. Das mache ich in einem Thread, solange ich in der Activity bin. Jetzt ist meine Frage: Soll ich das so lassen, oder besser in einen Service packen? Denn ich habe gelesen, dass man für längere Operationen (In unserem Fall eine Endlosschleife, solange der Thread nicht unterbrochen wird) Services verwenden soll.

    Hallo.
    Ich habe für meine App einen Startbildschirm programmiert, der mit AnimationDrawable die Farben ändert.


    Hier die background_animation_xml:


    Hier der Code in der MainActivity:


    Das funktioniert auch. Allerdings hätte ich gerne, dass der Display sofort seine Farben verändert. Bei mir dauert es allerdings die 3,5 Sekunden. Geht das irgendwie, dass es sich sofort verändert?

    Hi, ich will eine zum Vokabellernen erstellen. Aber wenn ich die App starte und eine der beiden Activities öffne, stürzt meine App sofort ab. Dabei zeigt meine LogCat immer folgendes an: "android.widget.RelativeLayout cannot be cast to android.widget.TextView"



    Hier mein Quellcode:



    Ausgabe:



    Activity Ausgabe:

    Hab das jetzt so gelöst:

    Code
    Cursor words = Database.getWordsByNUMMER(editText.getText());
                        words.moveToFirst();
                        toSpeech.setLanguage(Locale.GERMAN);
                        toSpeech.speak(words.getString(0), TextToSpeech.QUEUE_ADD, null);
                        toSpeech.setLanguage(Locale.UK);
                        toSpeech.speak(words.getString(1), TextToSpeech.QUEUE_ADD, null);
    Code
    public Cursor getWordsByNUMMER(Editable nr)
        {
            SQLiteDatabase db = this.getWritableDatabase();
            Cursor res = db.rawQuery("select Deutsch, Englisch from " + TABLE_NAME + " where NUMMER like " + nr, null);
            return res;
        }


    So funktioniert es. Aber jetzt will ich keine Nummer eingeben, sondern alle Vokabel nacheinander ausgeben. Das habe ich folgendermaßen realisiert:

    Code
    int length = Database.getLength();
                    for(int x = 1; x <= length; x++)
                    {
                        Cursor words = Database.getWordsByNUMMER(x);
                        words.moveToFirst();
                        toSpeech.setLanguage(Locale.GERMAN);
                        toSpeech.speak(words.getString(0), TextToSpeech.QUEUE_ADD, null);
                        toSpeech.setLanguage(Locale.UK);
                        toSpeech.speak(words.getString(1), TextToSpeech.QUEUE_ADD, null);
                    }



    Aber so funktioniert es aus irgendeinem Grund nicht.

    Code
    public void onCreate(SQLiteDatabase db) {
            db.execSQL("create table " + TABLE_NAME + " (NUMMER INTEGER PRIMARY KEY AUTOINCREMENT, DEUTSCH STRING, ENGLISCH STRING)");
        }

    Das ist meine Tabelle, also NR, Deutsch, Englisch.


    Müsste dann so die Zeile aussehen?


    Code
    res.moveToFirst();
    toSpeech.speak(res.getString(1), TextToSpeech.QUEUE_FLUSH, null);

    Und für das Englische Wort dann statt der 1 eine 2?

    Hi allerseits. Ich bin gerade an einem Projekt. Und zwar möchte ich Vokabel (Englisch Deutsch) in einer Datenbank speichern. Dabei habe ich die Spalten NR, Deutsch, Englisch. Das einfügen in die Datenbank funktioniert auch. Dann möchte ich die Vokabel durch eine Sprachausgabe ausgeben, wenn ich einen Button drücke.


    Die Funktion dafür sieht bei mir folgendermaßen aus:


    Die Methode getGermanByNR im DatabaseHelper:

    Code
    public Cursor getGermanByNR(Editable nr)
        {
            SQLiteDatabase db = this.getWritableDatabase();
            Cursor res = db.rawQuery("select Deutsch from " + TABLE_NAME + " where NR == " + nr, null);
            return res;
        }

    Wenn ich den Button betätige, wird nicht das Wort ausgegeben, sondern "android.database.(irgendetwas, was ich nicht verstanden habe).(irgendeine nummer)"
    Ich schätze, ich habe in der abfrage irgendetwas falsch gemacht oder so.


    Kann mir vielleicht jemand weiterhelfen?

    Hallo
    Erstmal eins du kannst nicht innerhalb einer Methode eine neue Methode machen.
    Das heißt du bist noch in der onCreate und erstellst eine neu Methode das geht nicht.

    Danke, das war es. Hätt ich auch selbst draufkommen können :rolleyes:


    Den Button habe ich im XML in der Text Ansicht erstellt:

    Code
    <Button
            android:id="@+id/button_sound1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:onClick="playSound"
            android:text="Sound 1"
            android:textAllCaps="false"/>


    Brauche ich ich die Zeile dann trotzdem?:

    Code
    Button bt = (Button) findViewById(R.id.button1);

    Ich will über 4 verschiedene Buttons die Methode playSound aufrufen. Allerdings ist das v rot und er schreibt "cannot resolve symbol". Zuerst war das View auch rot, das hat aber daran gelegen, dass ich vergessen habe, es zu importieren. Aber ich verstehe nicht, was er an dem v auszusetzen hat.
    R.id.button_sound1 und die anderen 3 sind auch rot unterwellt, da schreibt er "constant expression required".


    Kann mir da jemand weiterhelfen?

    Habe jetzt ein neues Projekt erstellt, diesmal nach dem designen der xml-Datei direkt einen Build gemacht und danach erst zum Programmieren begonnen. Jetzt funktioniert es. Könnte das der Fehler gewesen sein? Oder hat es an etwas anderem gelegen?

    Erstmal danke für deine Hilfe!


    Ich habe beides probiert, allerdings funktioniert es immer noch nicht. Hättest du noch eine Idee, woran der Fehler liegen könnte?

    Hoffe du meintest das.

    Wenn dein Ressource nicht gefunden wurde dann schau mal deine xml files an ob dei Ressource auch vorhanden ist u d auch gleichgeschrieben ist.


    Auch die xml Datei darf nicht rot sein.

    Was genau meinst du damit? Wo sollte die Klasse Resource vorhanden sein? Bzw. wo finde ich die?

    Java
    protected void onCreate(Bundle savedInstanceState { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    }

    Kann mir jemand erklären, was es mit dieser Klasse R auf sich hat?
    Ich lerne nämlich gerade mit Hilfe einer PDF Android Studio kennen, und habe ein Beispielprogramm aus der PDF ausprobiert:



    Mit Hilfe der App soll ein Bruch so weit wie möglich gekürzt werden. Ich verstehe zwar den Code, aber diese Klasse R wird in dem Programm auf einmal rot und Android Studio sagt mir "Cannot resolve symbol R". Woher kommt diese Klasse also und wieso erkennt sie Android Studio jetzt nicht mehr?