我现在有两个布局文件 main.xml sound_dialog.xml
一个Activity(General_Scene)文件
现在情况如下:
private SeekBar seekbar_ring;protected void onCreate(Bundle savedInstanceState) { 在onCreate方法中加载了main文件,
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//如果是setContentView(R.layout.sound_dialog)的话,在这里可以正确获取seekbar_ring的值
......
}
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 1, 1, "音量");
menu.add(0, 2, 2, "退出");
return super.onCreateOptionsMenu(menu);
}
在点击菜单时候会出现“音量”和“退出”两个选项,点击“音量”在该Activity界面会出现一个Dialog对话框,对话框中调节音量大小,现在无法获取seekbar的值,各位大侠帮忙解决下,不胜感激
public boolean onOptionsItemSelected(MenuItem item) {
int item_id = item.getItemId();
switch (item_id) {
case 1:
LayoutInflater flater = LayoutInflater.from(General_Scene.this);
View DialogView = flater.inflate(R.layout.sound_dialog, null);
new AlertDialog.Builder(this).setIcon(R.drawable.ic_settings_sound)
.setTitle("音量").setView(DialogView).setNegativeButton("取消",null).setPositiveButton("确定",new DialogInterface.OnClickListener() {
@Override log.d("test","seekbar_ring:"+seekbar_ring); // 这个值为null; 如何获取到seekbar_ring值啊? //(seekbar_ring是sound_dialog.xml文件中seekbar的ID) public void onClick(DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
}
}).create().show();
break;
.......
一个Activity(General_Scene)文件
现在情况如下:
private SeekBar seekbar_ring;protected void onCreate(Bundle savedInstanceState) { 在onCreate方法中加载了main文件,
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//如果是setContentView(R.layout.sound_dialog)的话,在这里可以正确获取seekbar_ring的值
......
}
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 1, 1, "音量");
menu.add(0, 2, 2, "退出");
return super.onCreateOptionsMenu(menu);
}
在点击菜单时候会出现“音量”和“退出”两个选项,点击“音量”在该Activity界面会出现一个Dialog对话框,对话框中调节音量大小,现在无法获取seekbar的值,各位大侠帮忙解决下,不胜感激
public boolean onOptionsItemSelected(MenuItem item) {
int item_id = item.getItemId();
switch (item_id) {
case 1:
LayoutInflater flater = LayoutInflater.from(General_Scene.this);
View DialogView = flater.inflate(R.layout.sound_dialog, null);
new AlertDialog.Builder(this).setIcon(R.drawable.ic_settings_sound)
.setTitle("音量").setView(DialogView).setNegativeButton("取消",null).setPositiveButton("确定",new DialogInterface.OnClickListener() {
@Override log.d("test","seekbar_ring:"+seekbar_ring); // 这个值为null; 如何获取到seekbar_ring值啊? //(seekbar_ring是sound_dialog.xml文件中seekbar的ID) public void onClick(DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
}
}).create().show();
break;
.......
sound_dialog.xml文件的话,就可以得到seekbar的值;[
具体源码可以参考Settings.apk里的RingVolumePreference里的设置,它是通过绑定数据来实现的
private static final int[] SEEKBAR_ID = new int[] {
R.id.notification_volume_seekbar,
R.id.media_volume_seekbar,
R.id.alarm_volume_seekbar
};
private static final int[] SEEKBAR_TYPE = new int[] {
AudioManager.STREAM_NOTIFICATION,
AudioManager.STREAM_MUSIC,
AudioManager.STREAM_ALARM
};
seekbar1 = (SeekBar) DialogView.findViewById(R.id.seek1)获取seekbar,看还能不能获取到progress