Как правильно вызвать диалог при запуске приложения?
Как правильно вызвать диалог при запуске приложения?
Требуется при запуске приложения перед показом основной активити, вызвать окно ввода логина и пароля. Как это сделать правильно?
Я думаю вызвать диалог в методе onCreate в самом начале, и если скажем логин и пароль неправильные то сразу закрывать приложение.
Я думаю вызвать диалог в методе onCreate в самом начале, и если скажем логин и пароль неправильные то сразу закрывать приложение.
Re: Как правильно вызвать диалог при запуске приложения?
как сделаешь так и будет для тебя правильно.
Я делаю в onCreate, ниче такого, все довольны. Только не забудь запретить закрытие диалога по кнопке назад и тач вне диалога, чтоб он тоже не закрылся.
Я делаю в onCreate, ниче такого, все довольны. Только не забудь запретить закрытие диалога по кнопке назад и тач вне диалога, чтоб он тоже не закрылся.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Как правильно вызвать диалог при запуске приложения?
Ну в принципе ведь можно не запрещать закрытие диалога, просто когда проверяешь возвращаемые из него данные то в случае неправильного ответа соответственно реагировать.
А как запрещается закрытие диалога и тач вне диалога? В свойствах самого компонента?
А как запрещается закрытие диалога и тач вне диалога? В свойствах самого компонента?
Re: Как правильно вызвать диалог при запуске приложения?
Я лично сделал по другому.
Есть у меня прозрачная активити, которая является главной для приложения. У неё в onCreate делается проверка есть ли авторизованная учетная запись, если нет, то она вызывает активити логина и сама закрывается, если есть, то вызывается активити приложения и опять же себя закрывает.
Есть у меня прозрачная активити, которая является главной для приложения. У неё в onCreate делается проверка есть ли авторизованная учетная запись, если нет, то она вызывает активити логина и сама закрывается, если есть, то вызывается активити приложения и опять же себя закрывает.
Re: Как правильно вызвать диалог при запуске приложения?
я не запрещаю закрытие, у него две кнопки есть - ок, кансел. ПО канселу просто закрываетс приложение, а в случае неправильного ответа диалог показывается опять.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Как правильно вызвать диалог при запуске приложения?
Сделал диалог и есть проблема - он вызывается на экран, но приложение продолжает выполнять код после вызова, а надо чтобы ждало завершения диалога. Вот код:
[syntax=java]
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_courier_main);
// Login dialog
showLogin();
// здесь код который выполняется сразу после вывода диалога
// надо чтобы выполнение продолжилось после нажатия кнопок в диалоге (т.е. после закрытия диалога)
...
}
// Код формирования диалога
String user, pwd;
private void showLogin() {
// TODO Auto-generated method stub
final AlertDialog.Builder alert = new AlertDialog.Builder(this);
final LinearLayout ln = new LinearLayout(this);
ln.setOrientation(1);
ln.setDividerPadding(5);
final EditText etUser = new EditText(this);
final EditText etPwd = new EditText(this);
ln.addView(etUser);
ln.addView(etPwd);
alert.setView(ln);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
user = etUser.getText().toString().trim();
pwd = etPwd.getText().toString().trim();
Toast.makeText(getApplicationContext(), user,
Toast.LENGTH_SHORT).show();
}
});
alert.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
});
alert.show();
}
[/syntax]
[syntax=java]
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_courier_main);
// Login dialog
showLogin();
// здесь код который выполняется сразу после вывода диалога
// надо чтобы выполнение продолжилось после нажатия кнопок в диалоге (т.е. после закрытия диалога)
...
}
// Код формирования диалога
String user, pwd;
private void showLogin() {
// TODO Auto-generated method stub
final AlertDialog.Builder alert = new AlertDialog.Builder(this);
final LinearLayout ln = new LinearLayout(this);
ln.setOrientation(1);
ln.setDividerPadding(5);
final EditText etUser = new EditText(this);
final EditText etPwd = new EditText(this);
ln.addView(etUser);
ln.addView(etPwd);
alert.setView(ln);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
user = etUser.getText().toString().trim();
pwd = etPwd.getText().toString().trim();
Toast.makeText(getApplicationContext(), user,
Toast.LENGTH_SHORT).show();
}
});
alert.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
});
alert.show();
}
[/syntax]
Re: Как правильно вызвать диалог при запуске приложения?
Вынеси код в отдельный метод и выполняй при положительном ответе диалога.
Re: Как правильно вызвать диалог при запуске приложения?
В том-то и дело, что в данных программах все примерно так же, поэтому как уже упоминалось, код будет непривычным - кусочками.
Поэтому имхо пусть грузится все, можно просто притенить это какой-то картинкой, или сделать прозрачную активити. В кусочках кода, когда логика прыгает - потом сложно разобраться. Например, если вы будете проверять пароль, обращаясь на сервер, то будут еще куски.. Оно все равно так будет, просто имхо для начинающего лучше, когда таких разрывов меньше..
Поэтому имхо пусть грузится все, можно просто притенить это какой-то картинкой, или сделать прозрачную активити. В кусочках кода, когда логика прыгает - потом сложно разобраться. Например, если вы будете проверять пароль, обращаясь на сервер, то будут еще куски.. Оно все равно так будет, просто имхо для начинающего лучше, когда таких разрывов меньше..
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Как правильно вызвать диалог при запуске приложения?
Olivka
Зато когда привыкнешь к таким вот кусочкам, сложно удержаться от повторения их в других языках
Зато когда привыкнешь к таким вот кусочкам, сложно удержаться от повторения их в других языках
Re: Как правильно вызвать диалог при запуске приложения?
Диалоговые окна насколько я понял запускаются в отдельной нити (потоке), что было несколько неожиданно. И простого способа заставить UI поток ждать возврата из диалога я пока не нашел.neoksi писал(а):Я лично сделал по другому.
Есть у меня прозрачная активити, которая является главной для приложения. У неё в onCreate делается проверка есть ли авторизованная учетная запись, если нет, то она вызывает активити логина и сама закрывается, если есть, то вызывается активити приложения и опять же себя закрывает.
Как сделать чтобы активити себя закрывала? Т.е. активити логина - ввели данные, запускаем активити приложения с передачей данных логина, а активити логина закрываем - как делается закрытие?
Re: Как правильно вызвать диалог при запуске приложения?
Просто после вызова другого активити следующей строкой пишем finish();
Re: Как правильно вызвать диалог при запуске приложения?
правильно, мы же его в другой теме так и не убедилиneoksi писал(а):Просто после вызова другого активити следующей строкой пишем finish();
viewtopic.php?f=39&t=1891
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198