android.widget.RelativeLayout cannot be cast to android.widget.TextView

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • android.widget.RelativeLayout cannot be cast to android.widget.TextView

    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:

    Java-Quellcode

    1. package com.protoapp.protoapp;
    2. import android.content.Intent;
    3. import android.database.Cursor;
    4. import android.speech.tts.TextToSpeech;
    5. import android.support.v7.app.AppCompatActivity;
    6. import android.os.Bundle;
    7. import android.view.View;
    8. import android.widget.ArrayAdapter;
    9. import android.widget.Button;
    10. import android.widget.EditText;
    11. import android.widget.Spinner;
    12. import android.widget.TextView;
    13. import android.widget.Toast;
    14. import java.util.ArrayList;
    15. import java.util.Locale;
    16. import java.util.concurrent.DelayQueue;
    17. import java.util.concurrent.Delayed;
    18. public class Ausgabe extends AppCompatActivity {
    19. boolean continueSpeak = true;
    20. boolean stopSpeak = false;
    21. boolean runAusgabe = false;
    22. DatabaseHelper Database;
    23. Button buttonStart;
    24. Button buttonPause;
    25. Button buttonStop;
    26. TextToSpeech toSpeech;
    27. Spinner spinnerStack3;
    28. Locale locGerman = new Locale("de", "DE");
    29. Locale locSpanish = new Locale("es", "CL");
    30. Locale locEnglish = new Locale("en", "us");
    31. @Override
    32. protected void onCreate(Bundle savedInstanceState) {
    33. super.onCreate(savedInstanceState);
    34. setContentView(R.layout.activity_ausgabe);
    35. Database = new DatabaseHelper(this);
    36. buttonStart = (Button) findViewById(R.id.buttonStart); //Button zum Ausgeben des Lernstoffes
    37. buttonPause = (Button) findViewById(R.id.buttonPause); //Button zum Pausieren
    38. buttonStop = (Button) findViewById(R.id.buttonStop); //Button zum Stoppen und Zurückkehren zum Startmenü
    39. spinnerStack3 = (Spinner) findViewById(R.id.spinnerStack3); //Spinner zum Auswählen eines Stapels
    40. spinnerStack3.setAdapter(GetTablesArrayAdapter());
    41. toSpeech = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
    42. @Override
    43. public void onInit(int status) { }
    44. });
    45. }
    46. public void Ausgabe(View v) //Methode wird aufgerufen, wenn einer der Buttons gedrückt wird (siehe xml-Datei -> android:onClick="Ausgabe"
    47. {
    48. if (runAusgabe == false) //Wird nur ausgeführt, wenn nicht gerade eine Ausgabe stattfindet
    49. {
    50. runAusgabe = true; //Dass die Ausgabe nicht nochmal gestartet werden kann
    51. final Cursor words = Database.getWords(spinnerStack3.getSelectedItem().toString()); //Cursor für das Auslesen der Datenbank wird initialisiert und die Methode getWords vom Layout DatabaseHelper ausgeführt, wo die select-Anweisung durchgeführt wird
    52. words.moveToFirst(); //Cursor wird in die erste Reihe gesetzt
    53. Runnable runnableSprachausgabe = new Runnable() { //Sprachausgabe in eine Runnable (Thread) packen
    54. @Override
    55. public void run() {
    56. for(int x = 1; x <= words.getCount();) //so lange noch Zeilen nachkommen, wird die Schleife ausgeführt
    57. {
    58. if(stopSpeak == true) //Bei Stop: Stoppen und beenden
    59. {
    60. toSpeech.stop();
    61. stopSpeak = false;
    62. continueSpeak = true;
    63. runAusgabe = false; //Dass man die Ausgabe wieder starten kann
    64. break;
    65. }
    66. if(continueSpeak == true) //Schauen, ob die Ausgabe pausiert ist
    67. {
    68. toSpeech.setLanguage(locGerman); //Sprache auf Deutsch
    69. toSpeech.speak(words.getString(0), TextToSpeech.QUEUE_ADD, null); //Sprachausgabe des deutschen Wortes
    70. toSpeech.setLanguage(locEnglish);
    71. toSpeech.speak(words.getString(1), TextToSpeech.QUEUE_ADD, null); //Sprachausgabe des englischen Wortes
    72. while (toSpeech.isSpeaking() == true) //Warten, bis Sprachausgabe fertig ist; sonst werden alle Wörter sofort reingespielt und man kann nicht mehr pausieren
    73. {
    74. delay100Millis(1);
    75. }
    76. toSpeech.stop(); //ToSpeek stoppen (brauche ich glaube ich nicht)
    77. if (x != words.getCount()) //Wenn eine Zeile nachfolgt, wird der Curser eine Zeile weiter gesetzt
    78. {
    79. words.moveToNext();
    80. }
    81. x++;
    82. }
    83. else //Wenn pausiert: Delay, dass der Prozessor nicht überhitzt
    84. {
    85. delay100Millis(1);
    86. }
    87. }
    88. runAusgabe = false; //Dass man die Ausgabe wieder starten kann
    89. }
    90. };
    91. Thread threadSprachausgabe = new Thread(runnableSprachausgabe); //In einen Thread packen
    92. threadSprachausgabe.start(); //Und starten
    93. }
    94. else
    95. {
    96. Toast.makeText(this, "Warten, bis Sprachausgabe beendet ist", Toast.LENGTH_SHORT).show();
    97. }
    98. }
    99. public void Pause (View v) //Beim Pause/Resume Button: zwischen true und false wechseln
    100. {
    101. if (runAusgabe == true)
    102. {
    103. if (continueSpeak == true)
    104. {
    105. continueSpeak = false;
    106. Toast.makeText(Ausgabe.this, "Ausgabe pausiert", Toast.LENGTH_SHORT).show();
    107. }
    108. else
    109. {
    110. continueSpeak = true;
    111. Toast.makeText(Ausgabe.this, "Ausgabe fortgesetzt", Toast.LENGTH_SHORT).show();
    112. }
    113. }
    114. else
    115. Toast.makeText(Ausgabe.this, "Ausgabe muss zuerst gestartet werden", Toast.LENGTH_SHORT).show();
    116. }
    117. public void Stop (View v)
    118. {
    119. stopSpeak = true;
    120. Toast.makeText(Ausgabe.this, "Ausgabe gestoppt", Toast.LENGTH_SHORT).show();
    121. }
    122. public void delay100Millis(int x) //Delay 100 Millisekunden
    123. {
    124. for(int y = 0; y < x; y++)
    125. {
    126. try {
    127. wait(100);
    128. } catch (Exception e) {}
    129. }
    130. }
    131. public ArrayAdapter<String> GetTablesArrayAdapter() //Methode, um die Tabellennamen in einen Adapter zu speichern, um sie in den Spinner im Dialogfenster einzufügen
    132. {
    133. final Cursor tables = Database.getTables();
    134. tables.moveToFirst();
    135. ArrayList<String> stacks = new ArrayList<String>();
    136. for(int i = 0; i < tables.getCount(); i++)
    137. stacks.add(tables.getString(0));
    138. ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.activity_ausgabe, stacks);
    139. return adapter;
    140. }
    141. }
    Alles anzeigen



    Activity Ausgabe:

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    3. xmlns:app="http://schemas.android.com/apk/res-auto"
    4. xmlns:tools="http://schemas.android.com/tools"
    5. android:layout_width="match_parent"
    6. android:layout_height="match_parent"
    7. tools:context=".Ausgabe">
    8. <TextView
    9. android:id="@+id/textView"
    10. android:layout_width="wrap_content"
    11. android:layout_height="wrap_content"
    12. android:layout_alignParentStart="true"
    13. android:layout_alignParentLeft="true"
    14. android:layout_alignParentTop="true"
    15. android:layout_marginStart="133dp"
    16. android:layout_marginLeft="133dp"
    17. android:layout_marginTop="40dp"
    18. android:text="Ausgabe"
    19. android:textSize="30sp" />
    20. <Button
    21. android:id="@+id/buttonStart"
    22. android:layout_width="180dp"
    23. android:layout_height="40dp"
    24. android:layout_alignParentTop="true"
    25. android:layout_centerHorizontal="true"
    26. android:layout_marginTop="223dp"
    27. android:onClick="Ausgabe"
    28. android:text="Start" />
    29. <Button
    30. android:id="@+id/buttonPause"
    31. android:layout_width="180dp"
    32. android:layout_height="40dp"
    33. android:layout_alignParentTop="true"
    34. android:layout_centerHorizontal="true"
    35. android:layout_marginTop="322dp"
    36. android:onClick="Pause"
    37. android:text="Pause/Resume" />
    38. <Button
    39. android:id="@+id/buttonStop"
    40. android:layout_width="180dp"
    41. android:layout_height="40dp"
    42. android:layout_alignParentTop="true"
    43. android:layout_centerHorizontal="true"
    44. android:layout_marginTop="429dp"
    45. android:onClick="Stop"
    46. android:text="Stop" />
    47. <Spinner
    48. android:id="@+id/spinnerStack3"
    49. android:layout_width="wrap_content"
    50. android:layout_height="wrap_content"
    51. android:layout_centerHorizontal="true"
    52. android:layout_marginTop="132dp"
    53. android:gravity="center_horizontal" />
    54. </RelativeLayout>
    Alles anzeigen