Ich habe einen Listener, der einfach den Text einer Schaltfläche ändert und die Zeit für den Benutzer anzeigt. Ich habe auch eine Textansicht, die auf die neue Gesamtanzahl der Zeit geändert werden soll, wenn der Benutzer abmeldet. Ich habe das XML überprüft, um sicherzustellen, dass ich die richtige R.Id packe und der Button im Listener wird gerade nicht gefunden. Hier ist der Code:TextView gibt Null zurück
public class HoursListener implements OnClickListener{
GlobalApp appState;
Button startStopHoursButton;
TextView hoursTotalTextView;
public boolean clockedIn;
public HoursListener(Context ctx){
appState = ((GlobalApp)ctx.getApplicationContext());
}
public void onClick(View v) {
startStopHoursButton = (Button) v.findViewById(R.id.hourstogglebutton);
hoursTotalTextView = (TextView) v.findViewById(R.id.totalWorktimeTextView);
if(!clockedIn){
startStopHoursButton.setText(R.string.clockout);
appState.getCurrentCompany().getCurrentNewWeeklyTimestamp().CreateFinishTimeStamp();
clockedIn = true;
}else{
startStopHoursButton.setText(R.string.clockin);
appState.getCurrentCompany().getCurrentNewWeeklyTimestamp().CreateFinishTimeStamp();
clockedIn = false;
hoursTotalTextView.setText(appState.getCurrentCompany().getCurrentNewWeeklyTimestamp().totalTimeDoneThisWeekToString());
}
}
}
Heres die xml für die Textview:
<TextView
android:id="@+id/totalWorktimeTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView2"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall"/>
Der Fehler ist mit dieser Zeile:
hoursTotalTextView.setText(appState.getCurrentCompany().getCurrentNewWeeklyTimestamp().totalTimeDoneThisWeekToString());
ich gerade dachte, Den Code in die Aktivität selbst einfügen, aber ich habe das Gefühl, dass ich es so machen kann. Ich möchte etwas, das ich wie einen Listener bezeichnen kann, um die Redundanz in meinem Code zu reduzieren. Ich habe überprüft, dass es die hoursTotalTextView ist, die null ist. Aber der Knopf ist nicht. Irgendwelche Ideen?
Screenshot von Eclipse (in Verbindung mit Full-Size-Version) zeigt, dass die entsprechenden Werte nicht null:
Was ist GlobalApp appState; –
ist meine Anwendung Klasse, die ich für statische Variablen habe. – slai47