简体   繁体   中英

OnClick not triggered inside Fragment

Got two empty Activites(A and B), which just hold two fragments inside ViewPager of Activity A. I do not have code errors, everything seems fine. When I lunch my app and click on button, nothing happens.I was trying just to log something, but still nothing is happening.

I am using ButterKnife, and so far everything was perfect.I got almost same Fragment and it is performing fine, but OnClick inside Fragment B is not working.I tried to add some more OnClick methods, but none of them worked for me.XML looks good,looks almost same as fragment A.

Fragment B is not complex, it just three TextViews and Button.

Here is code for my fragment B:

public class ForgotPasswordFragmentComplete extends BaseFragment implements BaseView {

private Realm realm;
private Email model;
@Bind(R.id.btn_resend)
AppCompatButton resendEmail;
@Inject
ForgotPasswordPresenter presenter;



    @OnClick(R.id.btn_resend)
    public void resendButton() {

   Log.d("ResendOnclick", "Checking OnClickMethod  ");
        Realm realm2 = getRealm();
        RealmQuery<Email> queryUserResend = realm2.where(Email.class);

        Email resultResend = queryUserResend.findFirst();
        ForgotPasswordPayload forgotPayload = new    ForgotPasswordPayload(resultResend.getUsername());
        this.presenter.subscribe(forgotPayload);

    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        DaggerForgotPasswordCompletedComponent.builder()
                .applicationComponent(
                        ((AndroidApplication) getActivity().getApplication()).getApplicationComponent())
                .forgotPasswordCompletedModule(new ForgotPasswordCompletedModule())
                .build()
                .inject(this);
    }
    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
    }
    @Override
    protected void onCreateViewWidgetInitialization(View view) {
        super.onCreateViewWidgetInitialization(view);
    }

    @Override
    public void onStart() {
        super.onStart();
        getEmail();
    }
    public void getEmail(){
        Realm realm = getRealm();
        RealmQuery<Email> queryUser = realm.where(Email.class);
        Email result1 = queryUser.findFirst();
        resendEmailTxt = (AutoResizeTextView) getView().findViewById(R.id.resend_user_email);
        if (resendEmailTxt != null) {
            this.resendEmailTxt.setText(result1.getUsername());
        }
    }
    @Override
    public void onDestroy() {
        super.onDestroy();
        realm.close();
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_forgot_password_fragment_complete, container, false);
    }
    @Override
    protected int getFragmentLayoutId() {
        return R.layout.fragment_forgot_password_fragment_complete;
    }

You need to bind the fragment's view object before you can use it. Try putting the following code inside onCreateView() :

View rootView = inflater.inflate(R.layout.fragment_forgot_password_fragment_complete, container, false);
ButterKnife.bind(this, rootView);
return rootView;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM