0
我有一個ListView
,當一個項目被點擊時,它創建新的PlaySongAlertDialog對象並將params傳遞給它。現在在下面的代碼的問題是,只有在第一次它實際上改變artistCheckBox
的文本,當我點擊解僱,然後在另一個ListView
行它顯示我artistCheckBox
相同的文本。 我找不到帖子,但我記得有人說我應該覆蓋onPrepareDialog
,但我找不到這樣的方法AlertDialog.Builder
類。對話框上的視圖不會改變,當它應該
public class PlaySongAlertDialog extends AlertDialog.Builder {
public PlaySongAlertDialog(final Context context, final String songName, final Intent service) {
super(context);
LayoutInflater inflater = LayoutInflater.from(context);
View dialoglayout = inflater.inflate(R.layout.download_song_alert_dialog_check_box, null);
final CheckBox artistCheckBox = (CheckBox) dialoglayout.findViewById(R.id.artist_checkbox);
final CheckBox albumCheckBox = (CheckBox) dialoglayout.findViewById(R.id.album_checkbox);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try{
artistCheckBox.setText("Add artist name (" + getSomethingFromTheWeb.getArtist(songName) +")");
} catch(Exception e){
artistCheckBox.setText("Add artist name (can't found)");
artistCheckBox.setClickable(false);
}
}
});
thread.start();
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
setMessage("Do you want to play: " + songName);
setView(dialoglayout);
}
而且這是我如何創建新的對話框(此代碼是主要的活動)
DownloadSongAlertDialog dialog = new DownloadSongAlertDialog(this, name, serviceIntent);
dialog.show();
是否有創造而不是重用的最後一個真正對話框每一次的方式,也許清理緩存或其他東西。