Диалог и обработка нажатия без закрытия диалога

Интерфейс, диалоги, темы, стили, меню
Ответить
jBee
Сообщения: 41
Зарегистрирован: 03 апр 2013, 16:24

Диалог и обработка нажатия без закрытия диалога

Сообщение jBee » 03 июн 2013, 14:47

Можно ли сделать так чтобы нажатие на кнопке в диалоге не приводило к его закрытию?

т.е. диалог создается так:

AlertDialog.Builder alert = new AlertDialog.Builder(this);

далее добавляем кнопки:

LinearLayout ln = new LinearLayout(this);
EditText etUser = new EditText(this);
ln.addView(etUser);
alert.setView(ln);

// Нажатие на эту кнопку не дожно закрывать диалог
alert.setNeutralButton("Настройки",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {


}
});

как это сделать?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Диалог и обработка нажатия без закрытия диалога

Сообщение rezak90 » 03 июн 2013, 14:54

dimsiss вызывается в любом случае даже если Вы его не вызываете, откройте исходники и увидите)) у меня была такая проблема, честно не помню решил я её или нет
R.id.team
Политика на форуме запрещена

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Диалог и обработка нажатия без закрытия диалога

Сообщение Foenix » 03 июн 2013, 15:22

создайте свой диаложек, ничего сложного, делов-то
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Диалог и обработка нажатия без закрытия диалога

Сообщение rezak90 » 03 июн 2013, 17:06

Foenix писал(а):создайте свой диаложек, ничего сложного, делов-то
:lol:
R.id.team
Политика на форуме запрещена

jBee
Сообщения: 41
Зарегистрирован: 03 апр 2013, 16:24

Re: Диалог и обработка нажатия без закрытия диалога

Сообщение jBee » 04 июн 2013, 15:14

Foenix писал(а):создайте свой диаложек, ничего сложного, делов-то
Я добавил свои кнопки и обработчики для них, но возникает вопрос как теперь закрывать диалог при нужном условии?


jBee
Сообщения: 41
Зарегистрирован: 03 апр 2013, 16:24

Re: Диалог и обработка нажатия без закрытия диалога

Сообщение jBee » 04 июн 2013, 15:50

Нет методов cancel и dismiss

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Диалог и обработка нажатия без закрытия диалога

Сообщение Mikhail_dev » 04 июн 2013, 16:19

Вот один из моих методов.
[syntax=java]
public static void showPlaceMenu(Context mapContext, ru.lab_m.whowhere.IGPSService mapMIGPSService,
final Location currentLocation, final Location selectedLocation) {
context = mapContext;
mIGPSService = mapMIGPSService;

LayoutInflater li = LayoutInflater.from(context);
View placeMenuView = li.inflate(R.layout.place_menu, null);

final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
alertDialogBuilder.setView(placeMenuView);

final Button btnWhatIsThere = (Button) placeMenuView.findViewById(R.id.btnWhatIsThere);
final Button btnRouteTo = (Button) placeMenuView.findViewById(R.id.btnRouteTo);
final Button btnPlaceMenuCancel = (Button) placeMenuView.findViewById(R.id.btnPlaceMenuCancel);
final AlertDialog alertDialog = alertDialogBuilder.create();
btnWhatIsThere.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new SelectedPlaceTask(context, currentLocation, selectedLocation).execute();
alertDialog.dismiss();
}
});
btnRouteTo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, NewCheckpointActivity.class);
intent.putExtra("currentLatitude", currentLocation.getLatitude());
intent.putExtra("currentLongitude", currentLocation.getLongitude());
intent.putExtra("selectedLatitude", selectedLocation.getLatitude());
intent.putExtra("selectedLongitude", selectedLocation.getLongitude());
context.startActivity(intent);
alertDialog.dismiss();
}
});
btnPlaceMenuCancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
alertDialog.dismiss();
}
});
alertDialog.show();
}
[/syntax]

Я помню да, был там что-то, когда я столкнулся с той же проблемой, но не могу вспомнить как решил. Напиши свой код, если не решишь проблему

jBee
Сообщения: 41
Зарегистрирован: 03 апр 2013, 16:24

Re: Диалог и обработка нажатия без закрытия диалога

Сообщение jBee » 04 июн 2013, 22:21

В результате сделал диалог немного по другому, т.е. первоначально было так:

final AlertDialog.Builder alert = new AlertDialog.Builder(this);

сделал дальше так:

final AlertDialog alertDialog = alert.create();

после чего добавил layout, кнопки, обработчики кнопок, и конечно там где надо можно использовать alertDialog.dismiss()

спасибо no-- за подсказку :)

Ответить