我想在自定義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的,請發表 –