Из основного активити по нажатию на элемент списка ListView вызываю DialogFragment и передаю ему параметры. При первом вызове данные отображаются верно, а вот при каждом следующем вызове данные передаются, но DialogFragment отображает старые данные. Как сделать чтобы оботражалсь новые данные?
Код вызова DialogFragment из Активити:
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String dst, prc, fspd, raz, tm, rspd = "";
Cursor c = db.getrec((int) id);
c.moveToFirst();
int firstrec = Integer.parseInt(c.getString(c.getColumnIndex("_id")));
dst = c.getString(c.getColumnIndex("dist"));//Дистанция
prc = c.getString(c.getColumnIndex("prc"));//Процент
fspd = c.getString(c.getColumnIndex("fsp"));//ПДД
raz = c.getString(c.getColumnIndex("raz"));//Разница
tm = c.getString(c.getColumnIndex("tm"));//Время сектора
rspd = c.getString(c.getColumnIndex("rsp"));
Bundle args = new Bundle();
args.putInt("id", (int) id);
args.putString("dist", dst);
args.putString("prc", prc);
args.putString("fspd", fspd);
args.putString("raz", raz);
args.putString("rspd", rspd);
args.putString("tm",
dlgrdlistchange.setArguments(args);
dlgrdlistchange.show(getFragmentManager(),"dlgrdlistchange");
Код DialogFragmnet:
public class rdlistchange extends DialogFragment implements OnClickListener {
private OnCompliteListener mListener;
private EditText listeditdist;
private EditText listeditpercent;
private EditText listeditspeed;
final String LOG_TAG = "myLogs";
private String dist, fspd, prc, raz, rspd, tm;
Integer args;
public rdlistchange(OnCompliteListener listener) {
this.mListener = listener;
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
args = getArguments().getInt("id");
dist = getArguments().getString("dist");
prc = getArguments().getString("prc");
fspd = getArguments().getString("fspd");
raz = getArguments().getString("raz");
rspd = getArguments().getString("rspd");
tm = getArguments().getString("tm");
getDialog().setTitle("Измените параметры участка РД");
View v = inflater.inflate(R.layout.rdlistchange, null);
v.findViewById(R.id.btnYes).setOnClickListener(this);
v.findViewById(R.id.btnNo).setOnClickListener(this);
listeditdist = (EditText) v.findViewById(R.id.listeditdist);
listeditpercent = (EditText) v.findViewById(R.id.listeditpercent);
listeditspeed = (EditText) v.findViewById(R.id.listeditspeed);
listeditdist.setText(dist);
listeditspeed.setText(fspd);
listeditpercent.setText(prc);
return v;
}
public void onClick(View v) {
Log.d(LOG_TAG, "Dialog 1: " + ((Button) v).getText());
switch (v.getId()){
case R.id.btnYes:
double rsec = Double.valueOf(String.valueOf(Double.valueOf(tm)/1000));
double rmin = rsec/60;
double rhour = rmin/60;
double zspeed = Double.valueOf(listeditspeed.getText().toString())*(Double.valueOf(listeditpercent.getText().toString())/100);
double draz = (((rhour*(Double.valueOf(rspd)-zspeed))/zspeed)*3600);
raz = String.valueOf(roundResult(draz));
mListener.onComplete(listeditdist.getText().toString(), listeditpercent.getText().toString(), listeditspeed.getText().toString(),args, raz);
dismiss();
break;
case R.id.btnNo:
dismiss();
break;
}
}
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
Log.d(LOG_TAG, "Dialog 1: onDismiss");
}
public void onCancel(DialogInterface dialog) {
super.onCancel(dialog);
Log.d(LOG_TAG, "Dialog 1: onCancel");
}
double roundResult (double d) {
d = d*10;
int i = (int) Math.round(d);
return (double) i/10;
}
}