powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Android:AlertDialog - получить результат выполнения
7 сообщений из 7, страница 1 из 1
Android:AlertDialog - получить результат выполнения
    #38216817
Фотография VladislavVV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
package com.blackdragonv.kcalc;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.util.Log;

public class AskDelQuestion {
	
 private String question = "Удалить запись?";
 private String title = "Title"; 
 private final Context ctx;

 
 public AskDelQuestion(final Context context, String q, String t) 
 {  	 
  this.ctx=context;
  this.question=q;
  this.title=t;  
 } 
 public AskDelQuestion(final Context context) 
 {  	 
  this.ctx=context;
 }
 
 public AskDelQuestion(final Context context, String t) 
 {  	 
  this.ctx=context; 
  this.title=t;  
 }
 
 public Dialog showDlg()
 { 
  OnClickListener Lstn = new OnClickListener() 
   {	
 	public void onClick(DialogInterface dialog, int which) 
 	{
 	  switch (which) 
 	  {
       case Dialog.BUTTON_POSITIVE:         	
         	Log.d(Const.LOGTAG, "yes");
 	        break;
 	   case Dialog.BUTTON_NEGATIVE: 		    
 		   Log.d(Const.LOGTAG, "no");
 	        break; 	        
 	   case Dialog.BUTTON_NEUTRAL:
 		    Log.d(Const.LOGTAG, "?"); 		    
 	        break;
 	  default:  Log.d(Const.LOGTAG, "def");   
 	 } 
 	} 	  
  };
 	  
  AlertDialog.Builder adb = new AlertDialog.Builder(ctx);
  adb.setTitle(this.title);
  adb.setMessage(this.question);
  adb.setPositiveButton(R.string.btnYes, Lstn);
  adb.setNegativeButton(R.string.BtnNo, Lstn);
  adb.setCancelable(false);
  AlertDialog d = adb.create();
  return d;  
 };
 
	
}//endofclass



вызываю так
Код: java
1.
2.
3.
4.
5.
6.
7.
public void menu_delClick(MenuItem item)
	{	
	  AskDelQuestion ask = new AskDelQuestion(this, "ddddd");
	  Dialog d = ask.showDlg();
	  d.show();	  
...
}



как получить результат выполнения диалога? (те какая кнопка нажата)
пробовал в классе AskDelQuestion объявлять переменную и в Listener присваивать ей значение=не работает

спс
...
Рейтинг: 0 / 0
Android:AlertDialog - получить результат выполнения
    #38216843
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читал ли официальную документацию? где искал ответ на вопрос? судя по коду, ответ на вопросы "нет" и "нигде".
...
Рейтинг: 0 / 0
Android:AlertDialog - получить результат выполнения
    #38216861
Фотография VladislavVV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha,
читал здесь
http://startandroid.ru/
http://developer.android.com/guide/topics/ui/dialogs.html
http://prodroid.com.ua/?p=336
http://elvis.kz/show_dialog_from_class/

везде диалог юзается непосредственно в классе, где треьуется результат
мне же надо получить результат из другого класса, что бы на каждую кнопку не городить кучу кода

есть что по делу сказать?
...
Рейтинг: 0 / 0
Android:AlertDialog - получить результат выполнения
    #38216866
Фотография VladislavVV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, судя по коду мне как андроид девелоперу от роду неделя
поэтому можно тыкать мордой в гавно, а можно и подсказать
на то и форум
...
Рейтинг: 0 / 0
Android:AlertDialog - получить результат выполнения
    #38216897
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladislavVV а можно и подсказать
на то и форум
это с твоей точки зрения. а с моей - форум, для незаурядных вопросов. а то, что спрашивает 90% залетных - гуглится за 2 минуты, ибо отвечено стопицот миллионов раз. кроме того у человека вырабатывается вредная привычка спрашивать, вместо того чтобы читать, думать и искать.

VladislavVVесть что по делу сказать?
по делу у меня есть сказать, что нужно OnClickListener передавать извне, а не создавать его внутри.
...
Рейтинг: 0 / 0
Android:AlertDialog - получить результат выполнения
    #38216913
Фотография VladislavVV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha, понял, спс
смысл городить огород в левым классом отпадает..
...
Рейтинг: 0 / 0
Android:AlertDialog - получить результат выполнения
    #38216941
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladislavVVchpasha, понял, спс
смысл городить огород в левым классом отпадает..
смысл некоторый есть только, если он много раз переиспользуется и только в целях экономии передачи стандартных параметров типа кнопок и каких-то настроек по умолчанию
пример использования фрагмента с тем же назначением
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
new ConfirmationFragment()
                    .setTitle(R.string.delete_title)
                    .setMessage(getQuantityString(R.plurals.delete_confirmation, itemsToDelete.size(), itemsToDelete.size()))
                    .setPositiveButtonClickListener(new DialogInterface.OnClickListener()
                    {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int which)
                        {
                            
                        }
                    })
                    .show(fragmentManager, "confirm_delete");


т.е. запись не сильно компактная, но все же лучше, чем каждый раз с билдером возиться.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Android:AlertDialog - получить результат выполнения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]