シークバーの状態を保存する際に問題があります。基本的に私はseekbarをランドスケープモードにしてsheredPreferencesを使って保存しようとしています。Android sharedPreferencesの向きの問題
シークバーが上記の方向にあるときはコードはうまくいきますが、私はランドスケープモードでのみ必要です。
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));
}
}
それは誰もがこれで私を助けることができ、動作していないです:私はのonCreate方法ではこのようなものを使用してみては?
を実装して拡張しますか? – GoneUp
こんにちは私はすべてのコードを編集して貼り付けました。これが私の意図をはっきりと示してくれることを願っています。 –
Hm。だから問題はあなたが肖像画でバーを隠す方法ですか? prefコードは正常に見えます。 – GoneUp