package at.abraxas.amarino.example.plugin.compass; import android.preference.PreferenceManager; import android.view.View; import android.view.ViewStub; import android.widget.SeekBar; import android.widget.TextView; import android.widget.SeekBar.OnSeekBarChangeListener; public class MyEditActivity extends AbstractEditActivity { public static final String PREF_FREQUENCY = "frequency"; private static final String TAG = "MyEditActivity"; TextView frequencyTV; SeekBar frequencySB; @Override public void init() { ViewStub stub = (ViewStub)findViewById(R.id.stub); stub.inflate(); frequencySB = (SeekBar)findViewById(R.id.seekBar); frequencyTV = (TextView)findViewById(R.id.seekBar_value); int lastValue = PreferenceManager.getDefaultSharedPreferences(this).getInt(PREF_FREQUENCY, 50); frequencySB.setProgress(lastValue); int rate = MyEditActivity.getRate(lastValue); frequencyTV.setText(getRateText(rate)); frequencySB.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { public void onStopTrackingTouch(SeekBar seekBar) {} public void onStartTrackingTouch(SeekBar seekBar) {} public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { int rate = MyEditActivity.getRate(progress); frequencyTV.setText(getRateText(rate)); } }); } @Override public void onSaveBtnClick(View view) { sendResult(R.string.plugin_name, R.string.plugin_desc, R.string.service_class_name, 0, 359); } @Override public void onCancelBtnClick(View view) { // nothing to do here in this example } private String getRateText(int rate){ String text = new String(); switch(rate){ case 8: text = getString(R.string.very_slow); break; case 4: text = getString(R.string.slow); break; case 2: text = getString(R.string.medium); break; case 1: text = getString(R.string.fast); break; case 0: text = getString(R.string.very_fast); break; } return text; } protected static int getRate(int frequency) { int rate = 0; if (frequency < 20) rate = 8; else if (frequency < 40) rate = 4; else if (frequency < 60) rate = 2; else if (frequency < 80) rate = 1; else rate = 0; return rate; } }