1

当我按下按钮时,我有一个关于保存音量更改的问题,不明白为什么。你能帮忙吗?我的代码如下:

    private AudioManager aManager;
    private SeekBar seekVolume;
    private Button save;



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

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

}
    public void saveOnClickListener(View view){

            int progress = 1;
            int keyCode = 0;
            KeyEvent keyEvent;
                aManager.setStreamVolume(AudioManager.STREAM_RING, progress  , AudioManager.FLAG_SHOW_UI + AudioManager.FLAG_PLAY_SOUND);
                if(keyCode==KeyEvent.KEYCODE_VOLUME_DOWN || keyCode==KeyEvent.KEYCODE_VOLUME_UP){
    seekVolume.setProgress(aManager.getStreamVolume(AudioManager.STREAM_RING));

            }else if (keyCode==KeyEvent.KEYCODE_VOLUME_DOWN || keyCode==KeyEvent.KEYCODE_VOLUME_UP){
                seekVolume.setProgress(aManager.getStreamVolume(AudioManager.STREAM_NOTIFICATION));

                }
 }

}

首先,我想对振铃音量进行更改,并在按下保存按钮时提交更改。多谢你们

4

3 回答 3

1

我认为在 xml 中你没有添加这个,因为你已经使用方法saveOnClickListener 在 xml 中添加 Button 属性作为

 android:onClick="saveOnClickListener" 

或者,如果您没有在 xml 中添加,您可以在活动中使用,如下所示

 Button save = (Button) findViewById(R.id.save);    
 save.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
          // do here what u want onclick of save button 
               }
        }


    });
于 2012-06-12T09:14:28.450 回答
0

您已将 aManager 设为 oncrete 中的本地变量,因此它的同名全局变量在 saveOnClickListener 中仍为 null

而不是这个

 AudioManager aManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

利用

aManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

在 Oncreate 中…………

于 2012-06-12T09:04:03.680 回答
0

您最好将 aManager 和 seekVolume 设为全局并删除

    SeekBar seekVolume = (SeekBar) findViewById(R.id.seekVolume);

在 onClickListener

于 2012-06-12T09:10:51.243 回答