【问题标题】:App get Crash when press Save Button按下保存按钮时应用程序崩溃
【发布时间】:2012-06-12 08:59:11
【问题描述】:

我在保存按下按钮时更改的音量时遇到问题,不明白为什么。你能帮忙吗?我的代码如下:

    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));

                }
 }

}

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

【问题讨论】:

  • LogCat 说什么?
  • 我想这不需要任何许可,不是吗?
  • SeekBar seekVolume = (SeekBar) findViewById(R.id.seekVolume);
  • 不知道这是否会导致崩溃,但是您声明了两次。在 onCreate 中就足够了
  • 在 switch case 块后添加 break 语句。同时删除 seekVolume 的重复声明。

标签: android button save volume


【解决方案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 
               }
        }


    });

【讨论】:

  • 在我的保存按钮的 XML 中,我有 android:onCLick="saveOnClickListener"Thanks Khan
  • 现在它正在工作,但请参阅(请参阅上面的编辑代码)和我的另一个评论。谢谢队友
  • 为此,您必须使用 seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener().....等,您可以在其中获取从 onProgessChangemethod 中的哪个更改量导入的方法
  • 但是如何在save.saveOnClickListener(View view) 中使用seekBar.setOnSeekBarChangeListener() 呢?
  • 我没有足够的声望在聊天中交谈 :|。我试图弄清楚如何将seekBar.setOnSeekBarChangeListener() 置于onCLick 之外,但当我按下保存按钮时,更改仍会保存
【解决方案2】:

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

而不是这个

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

使用

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

在 Oncreate 中............

【讨论】:

    【解决方案3】:

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

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

    在 onClickListener 中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-05
      • 2018-07-06
      相关资源
      最近更新 更多