I'm still new in creating interface. I refer a lot of tutorial but still not working. I want to pass the value from activity to fragment. mListener is null.
How the call the listener in correct way ?
Interface
public interface ListenerCardDetails {
void getCardSelected(String id);
}
MainActivity.java
public class CardDetailsActivity extends AppCompatActivity {
private ListenerCardDetails mListener;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// some stuff
mListener.getCardSelected("20");
}
public void setListener(ListenerCardDetails mListener) {
this.mListener = mListener;
}
MyFragment.java
public class TabPoints extends Fragment implements ListenerCardDetails {
private CardDetailsActivity mCardDetailsActivity;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_tab_points, container, false);
configView(view);
return view;
}
private void configView(View view){
((CardDetailsActivity) getActivity()).setListener(this);
}
@Override
public void getCardSelected(String id) {
Toast.makeText(getActivity(), id, Toast.LENGTH_LONG).show();
}
}
Error
java.lang.RuntimeException: Unable to instantiate activity java.lang.InstantiationException: java.lang.Class has no zero argument constructor at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2548) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) Caused by: java.lang.InstantiationException: java.lang.Class has no zero argument constructor at java.lang.Class.newInstance(Native Method)
Any help is really appreciated.