Button is not calling OnClickListener with first click

android, button, java, xml

Solution

Yes Yes I got the answer, after a lot of RND, I got the solution, I just need to implement setOnClickListener(), and setOnFocusChangeListener(). So I am putting here the solution.

ActivityLogin.java

 buttonLogin= (Button) findViewById(R.id.buttonLogin);
    buttonLogin.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.d("hello", "hellow");
            String username = mUserEditText.getText().toString();
            String password = mPassEditText.getText().toString();
            String location = mLocationData.get(mLocationSpinner.getSelectedItemPosition()).toLowerCase();
            if(username.isEmpty()||password.isEmpty()){
            popbox();
                return;
            }
            User user;
            user = new User(username);
            user.setLocation(location);
            AppManager.getInstance().setLoggedInUser(user);
            APICaller.getInstance().login(username, password, location);
        }
    });
    buttonLogin.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            v.performClick();
        }
    }
});
}

activity_login.xml

  <Button
        android:id="@+id/buttonLogin"
        style="@style/Button1"

        android:text="continue"
         />

Problem

I am trying to develop a Log in page, where I have Username, password and a button. When I click the button for the first time, nothing happens, but when I click the button for the second time, then it works properly. I am confused, why it is happening ? activity_login.xml ``` <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/splash_bg" tools:context=".LoginActivity" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:orientation="vertical" android:layout_margin="30dp" > <EditText style="@style/EditText1" android:id="@+id/userEditText" android:layout_marginBottom="50dp" android:inputType="textNoSuggestions" android:singleLine="true" android:hint="username" /> <EditText style="@style/EditText1" android:id="@+id/passEditText" android:inputType="textPassword" android:layout_marginBottom="50dp" android:hint="password" /> <Spinner android:id="@+id/locationSpinner" android:layout_width="match_parent" android:layout_height="wrap_content" android:popupBackground="#ffffff" style="@style/EditText1" android:layout_marginBottom="50dp" /> <Button style="@style/Button1" android:focusable="true" android:focusableInTouchMode="true" android:onClick="onLoginClick" android:text="continue" /> ``` loginActivity.java ``` @SuppressLint("DefaultLocale") public void onLoginClick(View view) { String username = mUserEditText.getText().toString(); String password = mPassEditText.getText().toString(); String location = mLocationData.get( mLocationSpinner.getSelectedItemPosition()).toLowerCase(); if (username.isEmpty() || password.isEmpty()) { CreatorMessenger .getInstance() .showMessage(this, "Error!!", "You need to enter username and password both to continue!!"); return; } User user; user = new User(username);/* * } */ user.setLocation(location); AppManager.getInstance().setLoggedInUser(user); APICaller.getInstance().login(username, password, location); } ```

Original source

Related problems