Android; die Deklaration edittext in Klasse Körper (außerhalb jeder Methode)
Ich habe Erfahrung mit Programmiersprachen, sondern bin ein bisschen neu für android-Programmierung.
Ich habe ein Programm mit einigen Feldern, die Funktion als Etiketten(textview), Knöpfe, und data entry(edittext).
Immer, wenn ich verkünde, daß Sie am Anfang des Programms aus allen Methoden(aber in der Klasse natürlich), wenn ich meine Anwendung stürzt es ab und simulation bietet ein "leider, Ihr Programm beendet ist" Alarm.
Eclipse gibt keine Fehler, die für die Erklärung und ich habe die gleiche Art und Weise für die Definition von regulären Variablen mit kein Problem. Es gibt auch die gleiche Fehlermeldung, wenn ich deklarieren Sie ein mediaplayer-Objekt in der Klasse Körper.
Weiß jemand, warum es Fehler gibt?
Und gibt es einen anderen Weg, um zu erklären, Globale Objekte wie edittext, viewtext, etc..., wenn diese immer und immer wieder in Methoden-klingt komisch für mich.
Danke!!!!
public class TrainerActivity erstreckt Aktivität {
Button stopTimer = (Button)findViewById(R.id.StopTimer);
Button startTimer = (Button)findViewById(R.id.StartTimer);
EditText totalTime = (EditText)findViewById(R.id.TotalTime);
EditText enterMin = (EditText)findViewById(R.id.EnterMin);
EditText enterSec = (EditText)findViewById(R.id.EnterSec);
private boolean breaker = false;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startTimer.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//TODO Auto-generated method stub
Button_StartTimer();
}
});
stopTimer.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//TODO Auto-generated method stub
Button_StopTimer();
}
});
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ohne zu sehen, dass Beispiel-code von dem, was Sie versuchen, ist es unmöglich zu sagen, für bestimmte (tun wir nicht, Geist-Lesen Sie hier). Aber lass mich raten, du tust so etwas?...
Den
tv2.setText(...)
wird scheitern, weil Sie verwendet werdenfindViewById(...)
rufen Sie VORsetContenetView(...)
und als Ergebnistv2
null.Ist es ganz akzeptabel deklarieren Sie Ihre widgets als Beispiel die Mitglieder in Ihrem
Activity
aber versuchen Sie nichtfindViewById(...)
bis, NACHDEM Sie Ihren Inhalt anzeigen.findViewById(...)
imonCreate(...)
dann werden Sie weiterhin auf die verschiedenen Objekte in der gesamten Umfang IhrerActivity
. In anderen Worten,tv1
in meinem code oben gelten auch für alle und alle Methoden inMyActivity
bisMyActivity
zerstört wird.Kannst du ein wenig Beispielcode, veranschaulicht das Problem? Es ist fein, zu erklären, eine member-variable, die ein EditText oder TextView in der Klasse.
logcat(in DDMS) sollte geben Sie Sie einige Informationen über den Fehler als gut. Wenn Sie mit eclipse gibt es eine Registerkarte für DDMS, wenn nicht, können Sie einfach laufen DDMS aus einer Befehlszeile Blick auf den logcat-tab und starten der app (mit dem Telefon über usb angeschlossen, natürlich.) Sie sollten in der Lage sein, um die tatsächlichen Fehler gemeldet wird.
Können Sie erklären diese Variablen innerhalb der Klasse Körper oder innerhalb der Methode Körper. Im ersten Fall werden die Variablen sind global und können so aufgerufen werden, innerhalb der ganzen Klasse; im letzteren Fall, Sie sind lokal und somit kann nur zugegriffen, die in dieser Methode. Beide werden Häufig in proramming.
In Android, die typische Anwendung ist, dass Sie Variablen deklarieren, die in der Klasse Körper und instanziieren Sie in der onCreate () - Methode. So etwas wie dieses:
Wenn Sie nur deklarieren Sie eine variable in der Klasse Körper,in den meisten caeses, können Sie es nicht verwenden, bis Sie instanziieren Sie es, weil Sie
null
vor der Instanziierung. Ich denke, das ist, warum Sie Probleme haben. Poste bitte die logcat so können wir festlegen, das eigentliche problem.versuchen deklarieren Sie die widget-Objekte Namen, die nur außerhalb der onCreate () - Methode
dann initialisieren Sie nach setContentView() in onCreate()