2015-01-07 3 views
1

У меня есть приложение, позволяющее мне показывать при запуске диалогового окна, в котором введите имя пользователя и пароль для входа в систему. Если ваше имя пользователя и пароль верны, моя деятельность по изменению программы, если она неверна, она должна повторить диалог для введите снова имя пользователя и пароль. Моя проблема заключается в том, чтобы повторить диалог, когда вход неверенандроид повторить диалог после нажатия на него

Вот код:

public Dialog onCreateDialog(Bundle savedInstanceState) { 

    inflater = getActivity().getLayoutInflater(); 
    v = inflater.inflate(R.layout.my_dialog_layout,null); 

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    builder.setView(v).setPositiveButton("OK", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      username = (EditText) v.findViewById(R.id.username); 
      password = (EditText) v.findViewById(R.id.password); 
      String user = ""; 
      String pswd = ""; 

      try { 
       File file=new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Download/"+"user.txt"); 

       InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(file)); 
       BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 

       StringBuilder stringBuilder = new StringBuilder(); 
       user = bufferedReader.readLine().toString(); 
       pswd = bufferedReader.readLine(); 

      }catch (FileNotFoundException e) { 
       Log.e("login activity", "File not found: " + e.toString()); 
      }catch (IOException e) { 
       Log.e("login activity", "Can not read file: " + e.toString()); 
      } 

      if (username.getText().toString().equals(user) && password.getText().toString().equals(pswd)) { 

       Intent i = new Intent("user_activity"); 
       startActivity(i); 
       Toast.makeText(getActivity(), "Welcome: " + username.getText().toString(), Toast.LENGTH_LONG).show(); 

      } else { 
       //here it should me repeat this dialog 
       Toast.makeText(getActivity(), "Username invalid", Toast.LENGTH_LONG).show(); 
      } 
     } 

     }).setNegativeButton("EXIT", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      ((MainActivity)getActivity()).finish(); 
     } 
    }); 

    return builder.create(); 
} 

Спасибо всем

+0

см. Этот вопрос: http://stackoverflow.com/questions/4016313/how-to-keep-an-alertdialog-open-after-button-onclick-is-fired – samgak

ответ

1

Попробуйте этот простой подход: сохранить диалоговое окно, отображающие и четкое имя поля и пароль:

if (username.getText().toString().equals(user) && password.getText().toString().equals(pswd)) { 

      Intent i = new Intent("user_activity"); 
      startActivity(i); 
      Toast.makeText(getActivity(), "Welcome: " + username.getText().toString(), Toast.LENGTH_LONG).show(); 
      dialog.dismiss(); 
     } else { 
      //here it should me repeat this dialog 

      username.setText("", TextView.BufferType.EDITABLE);; 
      password.setText("", TextView.BufferType.EDITABLE); 
      Toast.makeText(getActivity(), "Username invalid", Toast.LENGTH_LONG).show(); 
     } 
+0

Я пробовал и когда имя пользователя недействительно закрыть себя – xXJohnRamboXx

Смежные вопросы