Ручка Togglebutton in onresume ()Android

Форум для тех, кто программирует под Android
Ответить
Гость
 Ручка Togglebutton in onresume ()

Сообщение Гость »

Я написал программу, в которой я использую таймер и управляю этим таймером с использованием Toggle States.

Toggle's Состояние по умолчанию не выключено , после того как я вношу изменения в состояние переключения от на timer , и когда я снова изменяюсь на off , он останавливает таймер в соответствии с требованием. ToggleActivity , а затем внесет изменения в состояние переключения с на off - он все еще работает Timer ...

Примечание: , когда я использую Finish () или Back нажмите, но все, что используется, но все, что использует все, но все, что работает . Намерение < /code> столкнуться с такими проблемами.public class ToggleActivity extends Activity implements OnCheckedChangeListener {

ToggleButton toggleButton;
TextView text;

Timer timer;
TimerTask timerTask;
final Handler handler = new Handler();

Button btnSwitchActivity;

boolean toggleState;
SharedPreferences sharedPreferences;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_toggle);

toggleButton = (ToggleButton) findViewById(R.id.toggleButton);
text = (TextView) findViewById(R.id.textView1);
btnSwitchActivity = (Button) findViewById(R.id.btnSwitchActivity);

sharedPreferences = getApplicationContext().getSharedPreferences("toggleState",0);

btnSwitchActivity.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intentSwitchActivity = new Intent(ToggleActivity.this, SwitchActivity.class);
startActivity(intentSwitchActivity);
}
});

}

@Override
public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {

if(isChecked)
{
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("toggleState", true);
editor.commit();

text.setText("ON");

startTimer();

} else
{

SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("toggleState", false);
editor.commit();

text.setText("OFF");

if (timer != null) {
timer.cancel();
timer = null;
}
}

}

public void startTimer() {

timer = new Timer();
initializeTimerTask();
timer.schedule(timerTask, 1000, 5000);

}

public void stoptimertask(View v) {

if (timer != null) {
timer.cancel();
timer = null;
}

}

public void initializeTimerTask() {

timerTask = new TimerTask() {

public void run() {

handler.post(new Runnable() {

public void run() {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd:MMMM:yyyy HH:mm:ss a");
final String strDate = simpleDateFormat.format(calendar.getTime());

int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(getApplicationContext(), strDate, duration);
toast.show();
}

});

}

};

}

public void onResume() {
super.onResume();

toggleState = sharedPreferences.getBoolean("toggleState", false);
Log.v("toggleState", Boolean.toString(toggleState));

if (toggleState) {
toggleButton.setChecked(true);
text.setText("ON");
} else {
toggleButton.setChecked(false);
text.setText("OFF");
}

toggleButton.setChecked(toggleState);
toggleButton.setOnCheckedChangeListener(this);
}

@Override
protected void onPause() {
super.onPause();
toggleButton.setOnCheckedChangeListener(null);
}

}
< /code>

switchActivity.java

public class SwitchActivity extends Activity {

Button btnToggleActivity;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_switch);

btnToggleActivity = (Button) findViewById(R.id.btnToggleActivity);
btnToggleActivity.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(SwitchActivity.this, ToggleActivity.class);
startActivity(intent);

/**
* if i use finish instead of Intent to switch to ToggleActivity
* my Timer works fine
*/
// finish
}
});
}
}
< /code>

Activity_toggle.xml










< /code>

Activity_switch.xml









Подробнее здесь: https://stackoverflow.com/questions/280 ... n-onresume
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»