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