按下保存按钮时应用程序崩溃
Posted
技术标签:
【中文标题】按下保存按钮时应用程序崩溃【英文标题】: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 的重复声明。 【参考方案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 中
【讨论】:
以上是关于按下保存按钮时应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章