0

这是来自 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;
}
4

1 回答 1

0

看起来问题在于您的活动看到的 EditText 视图与屏幕上当前处于活动状态的视图不同。这可能会以几种方式发生,并且由于我看不到您的所有代码,因此很难准确判断发生了什么。

要测试将您的登录片段更改为:

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("");
    }
}

这将确保您正在设置当前登录片段用户并传递给“”。

于 2012-09-19T23:12:21.073 回答