Moin!
Ich bin ein Neueinsteiger in der Welt des Programmierens. Ich habe begonnen mit dem Buch "Android Apps entwickeln" das Programmieren von Apps zu erlernen.
Folgende Situation: Man schreibt mit dem Autor eine App, indem man am Ende ein Text in seine App vom Smartphone aus schreiben kann, drückt auf den Button und eine Computerstimme sagt den Text auf. Soweit so gut. Als ich bei dem Kapitel "Buttons Funktion geben" ankam, was auf Seite 117 beginnt, kam eine Fehlermeldung in Eclipse, die ich einfach nicht lösen kann. Das ist der bisherige Code:
Eine Fehlermeldung erscheint bei dem "button.setOnClickListener(this);"- zu finden unter public void onInit (int arg0) { - , die jedoch verschwindet, wenn ich den Code so verändere: "button.setOnClickListener((OnClickListener) this);". Wurde mir von Eclipse vorgeschlagen.
Das andere Problem ist das zweite public class. Dort erscheint die Fehlermeldung "The nested type StartActivity cannot hide an enclosing type". Ich hatte im Internet recherchiert und dort wurde gesagt, dass es am Namen "StartActivity" liegen solle und man den Namen ändern müsste. Wenn ich den Code dann so umstelle:
Startet die App im Smartphone, wird aber sofort beendet. Was mache ich bloß falsch?
Es tut mir Leid, dass ich so viel Text geschrieben habe, aber wollte alles so klar wie möglich darstellen.
Mit freundlichen Grüßen
Khaleed
Ich bin ein Neueinsteiger in der Welt des Programmierens. Ich habe begonnen mit dem Buch "Android Apps entwickeln" das Programmieren von Apps zu erlernen.
Folgende Situation: Man schreibt mit dem Autor eine App, indem man am Ende ein Text in seine App vom Smartphone aus schreiben kann, drückt auf den Button und eine Computerstimme sagt den Text auf. Soweit so gut. Als ich bei dem Kapitel "Buttons Funktion geben" ankam, was auf Seite 117 beginnt, kam eine Fehlermeldung in Eclipse, die ich einfach nicht lösen kann. Das ist der bisherige Code:
Java:
package de.example.androidnewcommer.sagkhallo;
import java.util.Locale;
import android.app.Activity;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class StartActivity extends Activity implements OnInitListener{
private TextToSpeech tts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
tts = new TextToSpeech(this, this);
}
@Override
public void onInit(int arg0) {
tts.setLanguage(Locale.GERMAN);
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(this)
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.start, menu);
return true;
}
public class StartActivity extends Activity implements OnInitListener,
OnClickListener {
public void onClick(View view) {
EditText et = (EditText) findViewById(R.id.editText1);
tts.speak(et.getText().toString(),
TextToSpeech.QUEUE_FLUSH, null);
}
}
}
Eine Fehlermeldung erscheint bei dem "button.setOnClickListener(this);"- zu finden unter public void onInit (int arg0) { - , die jedoch verschwindet, wenn ich den Code so verändere: "button.setOnClickListener((OnClickListener) this);". Wurde mir von Eclipse vorgeschlagen.
Das andere Problem ist das zweite public class. Dort erscheint die Fehlermeldung "The nested type StartActivity cannot hide an enclosing type". Ich hatte im Internet recherchiert und dort wurde gesagt, dass es am Namen "StartActivity" liegen solle und man den Namen ändern müsste. Wenn ich den Code dann so umstelle:
Java:
package de.example.androidnewcommer.sagkhallo;
import java.util.Locale;
import android.app.Activity;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class StartActivity extends Activity implements OnInitListener{
private TextToSpeech tts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
tts = new TextToSpeech(this, this);
}
@Override
public void onInit(int arg0) {
tts.setLanguage(Locale.GERMAN);
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener((OnClickListener) this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.start, menu);
return true;
}
public class khallo extends Activity implements OnInitListener,
OnClickListener {
public void onClick(View view) {
EditText et = (EditText) findViewById(R.id.editText1);
tts.speak(et.getText().toString(),
TextToSpeech.QUEUE_FLUSH, null);
}
@Override
public void onInit(int arg0) {
tts.setLanguage(Locale.GERMAN);
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener((OnClickListener) this);
}
}
}
Startet die App im Smartphone, wird aber sofort beendet. Was mache ich bloß falsch?
Es tut mir Leid, dass ich so viel Text geschrieben habe, aber wollte alles so klar wie möglich darstellen.
Mit freundlichen Grüßen
Khaleed