ToggleButton Status zur Laufzeit wechseln

R

RoofFire

Neues Mitglied
0
Hallo Jungs,

bin nun seit einiger Zeit mit meinen Toggle Buttons beschäftigt. Es geht darum dass ich einen Toggle Button bei der erstellung der Activity je nach Gegebenheit auf on oder off schalten will.

Dafür gibt es folgende Funktionen:

toggleButton.toggle();
toggleButton.setChecked(Boolean);

Wende ich diese Methoden an bekomme ich ständig eine NullPointerException und ich weiß nicht wieso. Setzte ich die Buttons im xml auf Checked/Unchecked funktioniert es. Jedoch sollte ich den Status der Buttons in der Laufzeit ändern.

Das ändern von Werten im Programm wenn der Button checked ist oder unchecked funktioniert einwandfrei. Von daher bin ich der meinung das die Buttons richtig eingebunden sind.

Warum funktionieren diese Methoden nicht? Was mache ich falsch?

Codeausschnitt:
Code:
	private ToggleButton tbOnOff;

	//---------------------------------
	private String onOff = "0";

	private int typ = Weckzeitberechnung.TYPE_NORMAL;
	//---------------------------------
	
	// True if a new alarm should be made
	private boolean newAlarm = false;
	
    /** Called when the activity is first created. */
	@Override  
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.weckerdetail); 
        
        TimePicker wd = (TimePicker) findViewById(R.id.weckerdetail);
        wd.setIs24HourView(true);
		System.out.println("starttimechangedlistener");
		
		final Bundle extra = this.getIntent().getExtras();
		if (extra != null && extra.containsKey(IN_PARAM_ID)) {
			id = extra.getInt(IN_PARAM_ID);
			Log.d(TAG, "Empfangene Alarm ID = " + id);
			newAlarm = false;
		} else {
			Log.i(TAG, "No ID Recived, build new Alarm");
			newAlarm = true;
		}
		
		if(!newAlarm) {
			initFelder();
		}
		

		tbOnOff = (ToggleButton) findViewById(R.id.tb_onOff);
		

		
		
		tbOnOff.setOnClickListener(new OnClickListener() {
		    public void onClick(View v) {
		        // Perform action on clicks
		        if (tbOnOff.isChecked()) {
		        	onOff = "1";
		        	Log.d(TAG, "Checked");
		        } else {
		        	onOff = "0";  
		        	Log.d(TAG, "Not Checked");
		        }
		    }
		});
		Log.d(TAG, "Done 1");
    }
	
	private void initFelder() {
		AlarmTime time = Einstellungen.getAlarmTime(this, id);

		
		if(time.getMontag() == 1) {
			Log.d(TAG, "do");
			//this.tbMontag.setChecked(true);
			try {
				this.tbMontag.toggle();
			} catch(Exception e) {
				e.printStackTrace();
			}

Hab den Code etwas abgekürzt...
 
und dein button hat im xml

android:id="@+id/tb_onOff"

?
 
Ja
Code:
    	  <ToggleButton 
    		android:id="@+id/tb_onOff"
        	           android:layout_width="fill_parent"
        	           android:layout_height="wrap_content"
        	           android:textOn="@string/on"
        	           android:textOff="@string/off"
        	           android:layout_weight="1" />
 

Ähnliche Themen

A
  • AnimaAngelo85
Antworten
1
Aufrufe
337
swa00
swa00
Tiefkuehlpizza
Antworten
9
Aufrufe
933
Tiefkuehlpizza
Tiefkuehlpizza
E
Antworten
2
Aufrufe
777
ekaya999
E
Zurück
Oben Unten