Страница 1 из 1

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

Добавлено: 03 июн 2013, 14:47
jBee
Можно ли сделать так чтобы нажатие на кнопке в диалоге не приводило к его закрытию?

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

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) {


}
});

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

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

Добавлено: 03 июн 2013, 14:54
rezak90
dimsiss вызывается в любом случае даже если Вы его не вызываете, откройте исходники и увидите)) у меня была такая проблема, честно не помню решил я её или нет

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

Добавлено: 03 июн 2013, 15:22
Foenix
создайте свой диаложек, ничего сложного, делов-то

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

Добавлено: 03 июн 2013, 17:06
rezak90
Foenix писал(а):создайте свой диаложек, ничего сложного, делов-то
:lol:

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

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

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

Добавлено: 04 июн 2013, 15:19
Mikhail_dev
alertdialog.dismiss();

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

Добавлено: 04 июн 2013, 15:50
jBee
Нет методов cancel и dismiss

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

Добавлено: 04 июн 2013, 16:19
Mikhail_dev
Вот один из моих методов.
[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]

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

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

Добавлено: 04 июн 2013, 22:21
jBee
В результате сделал диалог немного по другому, т.е. первоначально было так:

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

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

final AlertDialog alertDialog = alert.create();

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

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