Ich zeige ein Dialogfragment von meinem Aktivitätsadapter, ich habe einen EditText und einige andere Ansichten im Dialogfragment. Und ich muss einige Daten direkt an die Aktivität und den Adapter zurückgeben, indem ich auf die Schaltfläche "Aktualisieren" im Dialog Dragment klicke. Ich kann Daten an die Aktivität übergeben, aber keine Daten an den Adapter. Mein Adapter-Listener funktioniert nicht
public class MyDialogFragment extends android.support.v4.app.DialogFragment
{
private OnItemUpdateListenerDialog onItemUpdateListenerDialog;
private void SetValues(final CartItemDetail item) {
buttUpdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setValue=editSet.getText().toString();//get value from editText
onItemUpdateListenerDialog.onItemUpdateRequest(addItemToCart(item.getDataOne(), item.getDataTwo()));//listner for activity
onSetChangeListnerDialog.returnData(setValue);//listner for adapter
dismiss();
}
});
}
public interface OnItemUpdateListenerDialog {
void onItemUpdateRequest(JSONObject jsonObject);
}
public void setOnItemUpdateListenerDialog(OnItemUpdateListenerDialog onItemUpdateListener) {
this.onItemUpdateListenerDialog = onItemUpdateListenerDialog;
}
public interface OnSetChangeListenerDialog {
void returnData(String result);
}
public void setOnSetChangeListenerDialog(OnSetChangeListenerDialog onSetUpdateRequest) {
onSetChangeListnerDialog = onSetChangeListnerDialog;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
this.onItemUpdateListenerDialog = (OnItemUpdateListenerDialog)activity;//activit listner
this.onSetChangeListnerDialog = (OnSetChangeListenerDialog)activity;//adapter listner
}
catch (final ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement OnCompleteListener");
}
}
}
}
Meine Adapterklasse
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
implements View.OnClickListener,MyDialogFragment.OnSetChangeListenerDialog{
@Override
public void returnData(String result) {
setValue = result;
}
}
Versuchen Sie, eine externe einfache Schnittstelle zu definieren:
Zurück.java
public interface Returning {
void return_value(String value);
}
MyDialogFragment.java
public class MyDialogFragment {
private Returning returning;
buttUpdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
returning= ((Returning ) context);
returning.return_value("everything");
// ...
}
}
}
MyAdapter.java
public class MyAdapter implements Returning {
// ...
@Override
public void return_value(String value) {
setValue = value;
}
}
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen