我想在自定义AlertDialog中使用SeekBar,但是当我单击按钮时它崩溃。 自定义AlertDialog只有一个ID为“seekProgress”的ID和一个ID为“seekBar1”的SeekBar。 如果我删除“seekBar.setOnSeekBarChangeListener ...”它不会崩溃,但当我移动它时当然没有任何反应。在自定义AlertDialog中插入SeekBar(Android)
主要活动有一个onClick =“myMethod”按钮,其中我使AlertDialog。以下是此方法的代码:
public void myMethod(View view){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
LayoutInflater inflater = this.getLayoutInflater();
builder.setView(inflater.inflate(R.layout.dialog_exchange_money_farmers, null));
SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar1);
seekProgress = (TextView) findViewById(R.id.seekProgress);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
int progressValue;
TextView seekProgress = (TextView) findViewById(R.id.seekProgress);
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
progressValue = progress;
seekProgress.setText("Covered: " + progress + "/" + seekBar.getMax());
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
seekProgress.setText("Covered: " + progressValue + "/" + seekBar.getMax());
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
如何使SeekBar Listener正常工作?
编辑:当我调试我得到这个错误: 产生的原因:显示java.lang.NullPointerException:试图调用虚拟方法无效android.widget.SeekBar.setOnSeekBarChangeListener(android.widget.SeekBar $ OnSeekBarChangeListener)“上空物体参考
我有SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar1);
它为什么说它是空的?
解决方案: 我不得不告诉他在哪个布局的项目。
View testView = inflater.inflate(R.layout.dialog_exchange_money_farmers, null);
builder.setView(testView);
seekBar = (SeekBar) testView.findViewById(R.id.seekBar1);
seekProgress = (TextView) testView.findViewById(R.id.seekProgress);
顺便说一句,我可以让它在主要活动的工作,但它不会在AlertDialog工作... – Laur89
如果你有logcat的,请发表 –