Tôi đang cố gắng phát triển một số Log trong trang, nơi tôi có Tên người dùng, mật khẩu và nút. Khi tôi nhấp vào nút lần đầu tiên, không có gì xảy ra, nhưng khi tôi nhấp vào nút lần thứ hai, thì nó hoạt động bình thường. Tôi bối rối, tại sao nó lại xảy ra?Nút không gọi OnClickListener với lần nhấp đầu tiên
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);
}
Sử dụng Trình ghi nhật ký để xem trong logcat nếu nó đang nhập phương thức hay không. Bạn sẽ thấy nó không phải là beacuse paramableInTouchMode param. – Jorgeblom
SO tôi nên làm gì, hãy giúp tôi? –
Có lẽ câu trả lời của tôi cho câu hỏi tương tự này có thể giúp: http://stackoverflow.com/a/42092582/1617737 –