0
我有保存seekbar狀態的問題。基本上我只將seekbar放在橫向模式下,並嘗試使用sheredPreferences來保存它。Android sharedPreferences方向問題
當seekbar處於上方時,代碼運行良好,但我只需要在橫向模式下運行。我嘗試使用這樣的事情在的onCreate方法:
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
Button btncount;
TextView e1, e2;
SeekBar zip;
int txt;
double x , y = 22.54, z;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
zip = (SeekBar)findViewById(R.id.zip);
btncount = (Button)findViewById(R.id.btncount);
e1 = (TextView)findViewById(R.id.e1);
e2 = (TextView)findViewById(R.id.e2);
btncount.setOnClickListener(this);
SharedPreferences settings = getSharedPreferences("mypref", 0);
//save in above orientation
int ot = getResources().getConfiguration().orientation;
switch (ot) {
case Configuration.ORIENTATION_LANDSCAPE:
zip.setOnSeekBarChangeListener(actionseekBar);
int mProgress = settings.getInt("seekname", 0);
//save only in landscape orientation
zip.setProgress(mProgress);
e1.setText(settings.getString("ValueY", "0"));
e2.setText(settings.getString("ValueZ", "0"));
break;
case Configuration.ORIENTATION_PORTRAIT:
e1.setText(settings.getString("ValueY", "0"));
e2.setText(settings.getString("ValueZ", "0"));
break;
}
}
@Override
protected void onStop(){
super.onStop();
SharedPreferences settings = getSharedPreferences("mypref", 0);
SharedPreferences.Editor editor = settings.edit();
int ot = getResources().getConfiguration().orientation;
switch (ot) {
case Configuration.ORIENTATION_LANDSCAPE:
editor.putString("ValueY", e1.getText().toString());
editor.putString("ValueZ", e2.getText().toString());
editor.putInt("seekname", zip.getProgress());
break;
case Configuration.ORIENTATION_PORTRAIT:
editor.putString("ValueY", e1.getText().toString());
break;
}
editor.commit();
}
private final SeekBar.OnSeekBarChangeListener actionseekBar = new SeekBar.OnSeekBarChangeListener(){
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
txt = progress;
e2.setText(String.valueOf(txt));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
};
@Override
public void onClick(View v) {
if(v.getId()== R.id.btncount){
counter(v);
}
}
public void counter(View v){
z = Double.parseDouble(e2.getText().toString());
x = y + z;
e1.setText(String.valueOf(x));
}
}
它不工作,誰能幫助我?
你在哪裏設置把選項? – GoneUp
嗨我編輯並粘貼所有的代碼,希望這將清楚地表明我的意思。 –
嗯。所以問題是你如何在縱向上隱藏酒吧? pref代碼看起來很好。 – GoneUp