这是Navigator.onClick()的代码。 Login.onResume()中的代码似乎可以工作,但是在我这样做之后,无论我在用户ID和密码字段中输入什么内容,应用程序似乎都没有意识到这一点。它只是一直说“用户ID不能为空”。它第一次正常工作。
private void buttonClick(final Button btnLeft, final Button btnRight,
final Button btnQueue) {
btnLeft.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
previousScreen = btnLeft.getText().toString();
if (previousScreen.equals("Login")) {
errorMessage = loginProcedure();
if (errorMessage.equals("")) {
showDetails(btnLeft, btnRight, btnQueue,
fragmentTransaction);
} else {
FileIO.displayMessage(getActivity(), errorMessage, null);
}
} else if (...) {
}
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
private String loginProcedure() {
errorMessage = "";
String userID = ((EditText) getActivity().findViewById(
R.id.editUserid)).getText().toString();
if (userID.trim().equals("")) {
errorMessage = "User ID cannot be empty";
return errorMessage;
}
String password = ((EditText) getActivity().findViewById(
R.id.editPassword)).getText().toString();
if (password.trim().equals("")) {
errorMessage = "Password cannot be empty";
return errorMessage;
}
if (!FileIO.UserList.contains((userID + "PR" + password)
.toUpperCase())) {
errorMessage = "UnAuthorized User";
return errorMessage;
} else {
userID = userID;
UserName = password;
}
return errorMessage;
}
答案 0 :(得分:0)
看起来问题在于您的活动看到的EditText视图与屏幕上当前活动的视图不同。这可能发生在一些方面,因为我看不到你的所有代码很难说清楚到底发生了什么。
要测试将LogIn片段更改为:
public class Login extends Fragment {
private View fragmentView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
fragmentView = inflater.inflate(R.layout.login, null);
return fragmentView;
}
@Override
public void onResume() {
super.onResume();
EditText e1 = (EditText) fragmentView.findViewById(R.id.editUserid);
e1.setText("");
EditText e2 = (EditText) fragmentView.findViewById(R.id.editPassword);
e2.setText("");
}
}
这将确保您设置当前的LogIn Fragment用户并传递给“”。