0

私はAndroid開発の初心者であり、アクティビティの変更を保存するためのボタンをどのように作成できるかを理解しようとしています。簡単な説明:呼び出し音の音量を変更できるseekBarがありますが、システムに直接変更されます。変更を保存するためのボタンを配置しました。これを行う方法がわかりません。これは私のコードです:

main.xml

 <Button
        android:id="@+id/save"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_text"/>

    <SeekBar
        android:id="@+id/seekVolume"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

アクティビティ

public class SaveActivity extends Activity {

    private AudioManager aManager;
    private SeekBar seekVolume;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        aManager = (AudioManager) getSystemService(AUDIO_SERVICE);
        Button save = (Button) findViewById(R.id.save);

        setOnClickListener();      
}
    private void setOnClickListener(){
        SeekBar seekVolume = (SeekBar) findViewById(R.id.seekVolume);

        seekVolume.setMax(aManager.getStreamMaxVolume(AudioManager.STREAM_RING));
        seekVolume.setKeyProgressIncrement(1);
        seekVolume.setProgress(aManager.getStreamVolume(AudioManager.STREAM_RING));
        seekVolume.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
            public void onStopTrackingTouch(SeekBar ringvolume) {
            }
            public void onStartTrackingTouch(SeekBar ringvolume) {
            }
            public void onProgressChanged(SeekBar ringvolume, int progress,boolean fromUser) {
aManager.setStreamVolume(AudioManager.STREAM_RING, progress, AudioManager.FLAG_SHOW_UI + AudioManager.FLAG_PLAY_SOUND); 
            }
        });
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event){
        if(keyCode==KeyEvent.KEYCODE_VOLUME_DOWN || keyCode==KeyEvent.KEYCODE_VOLUME_UP){
            seekVolume.setProgress(aManager.getStreamVolume(AudioManager.STREAM_RING));
    }
        return (super.onKeyDown(keyCode, event));
    }

}

私は本当にこれを行う方法がわかりません。みんなありがとう!

4

1 に答える 1

0

あなたの好みを読むには(でonCreate()):

SharedPreferences preferences = getPreferences(MODE_PRIVATE);
seekVolume.setProgress(preferences.getInt("storedVol", 0));

設定を保存するには(でonDestroy()):

SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedVol", seekVolume.getProgress()); // value to store
editor.commit();

取得Button saveしますonCreate()が、何もしません。あなたはそれが何をしたいですか?onClickListener追加して接続してみませんか

  save.setOnClickListener(mySaveHandler);

onCreate()?それで:

View.OnClickListener mySaveHandler = new View.OnClickListener() {
  public void onClick(View v) {
   // Save preferences here instead/aswell
 }
}
于 2012-06-11T16:15:19.833 に答える