Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Android [игнор отключен] [закрыт для гостей] / Android:AlertDialog - получить результат выполнения / 7 сообщений из 7, страница 1 из 1
08.04.2013, 11:38
    #38216817
VladislavVV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android:AlertDialog - получить результат выполнения
Код: 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
08.04.2013, 11:52
    #38216843
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android:AlertDialog - получить результат выполнения
читал ли официальную документацию? где искал ответ на вопрос? судя по коду, ответ на вопросы "нет" и "нигде".
...
Рейтинг: 0 / 0
08.04.2013, 11:58
    #38216861
VladislavVV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android:AlertDialog - получить результат выполнения
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
08.04.2013, 11:59
    #38216866
VladislavVV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android:AlertDialog - получить результат выполнения
да, судя по коду мне как андроид девелоперу от роду неделя
поэтому можно тыкать мордой в гавно, а можно и подсказать
на то и форум
...
Рейтинг: 0 / 0
08.04.2013, 12:14
    #38216897
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android:AlertDialog - получить результат выполнения
VladislavVV а можно и подсказать
на то и форум
это с твоей точки зрения. а с моей - форум, для незаурядных вопросов. а то, что спрашивает 90% залетных - гуглится за 2 минуты, ибо отвечено стопицот миллионов раз. кроме того у человека вырабатывается вредная привычка спрашивать, вместо того чтобы читать, думать и искать.

VladislavVVесть что по делу сказать?
по делу у меня есть сказать, что нужно OnClickListener передавать извне, а не создавать его внутри.
...
Рейтинг: 0 / 0
08.04.2013, 12:19
    #38216913
VladislavVV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android:AlertDialog - получить результат выполнения
chpasha, понял, спс
смысл городить огород в левым классом отпадает..
...
Рейтинг: 0 / 0
08.04.2013, 12:32
    #38216941
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android:AlertDialog - получить результат выполнения
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
Форумы / Android [игнор отключен] [закрыт для гостей] / Android:AlertDialog - получить результат выполнения / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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