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); } ```