Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
shulyakyarik
11 / 11 / 3
Регистрация: 28.03.2014
Сообщений: 156
#1

Вызов диалога из кнопки в action bar-е - Программирование Android

11.08.2014, 20:14. Просмотров 961. Ответов 4
Метки нет (Все метки)

Закинул кнопочку в action bar при нажатии на которую должен создаваться диалог, но вылетает ошибка. Поискав в интернете причины попробовал сменить getApplicationContext() на this ,а также на MyClass.this но ошибка появляется.

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
at android.view.ViewRootImpl.setView(ViewRootImpl.java:800)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:288)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:73)
at android.app.Dialog.show(Dialog.java:287)
at android.app.AlertDialog$Builder.show(AlertDialog.java:951)
at my.ua.myapplication.ControlDB.CreateView(ControlDB.java:76)
at my.ua.myapplication.ControlDB.onOptionsItemSelected(ControlDB.java:66)
at android.app.Activity.onMenuItemSelected(Activity.java:2640)
at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:1171)
at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735)
at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:152)
at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874)
at com.android.internal.view.menu.ActionMenuView.invokeItem(ActionMenuView.java:630)
at com.android.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:200)
at android.view.View.performClick(View.java:4475)
at android.view.View$PerformClick.run(View.java:18786)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
at dalvik.system.NativeStart.main(Native Method)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.08.2014, 20:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вызов диалога из кнопки в action bar-е (Программирование Android):

Action Bar - Программирование Android
Помогите, пожалуйста, решить одну проблему. В IDEA ActionBar отображается, а когда перекидываю приложение на эмулятор то ActionBar'а...

Убрать Action bar - Программирование Android
Подскажите пожалуйста как убрать Action bar . Никак не получается все перепробовал вот мой манифест <?xml version="1.0"...

Убpать веpхний Action Bar - Программирование Android
Как убpать веpхний баp?!

Split Action Bar не работает - Программирование Android
Здравствуйте, я создал иконку в actionbar, файл res/menu/menu_main.xml и хочу чтобы она находилась на нижней части экрана. <item...

Работа с drop down navigation в action bar - Программирование Android
Добрый день! Использую drop down navigation. public class MainActivity extends Activity implements ...

Как полностью убрать Action Bar? - Программирование Android
Добрый вечер ! Подскажите пожалуйста как полностью убрать Action Bar . Никак не получается , пробовал в манифесте менять ,вставлял вот это...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
11.08.2014, 22:00 #2
Код бы не помешал) И зачем кнопка в actionBar'e? Там же есть элементы меню.
0
shulyakyarik
11 / 11 / 3
Регистрация: 28.03.2014
Сообщений: 156
12.08.2014, 09:41  [ТС] #3
Spelcrawler, эта кнопка и есть элементом.

menu.xml
XML
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
 
    <item android:id="@+id/add"
        android:icon="@drawable/plus"
        android:title=""
        android:showAsAction="ifRoom" />
 
</menu>
myActivity
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
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
 
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu, menu);
        return super.onCreateOptionsMenu(menu);
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                finish();
                overridePendingTransition(R.anim.dt,R.anim.alpha);
                return true;
            case R.id.add:
                CreateView();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
 
    }
 
    public void CreateView(){
        AlertDialog.Builder ad = new AlertDialog.Builder(getApplicationContext());
        ad.setTitle("Title");
        ad.setMessage("Message");
        ad.setPositiveButton("Positive", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int arg1) {
                Toast.makeText(getParent(), "True", Toast.LENGTH_LONG).show();
            }
        });
        ad.setNegativeButton("Negative", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int arg1) {
                Toast.makeText(getParent(), "False", Toast.LENGTH_LONG).show();
            }
        });
        ad.show();
    }
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
12.08.2014, 12:16 #4
Подозреваю, что дело в контексте. Попробуйте передать его в метод с диалогом, а не использовать getApplicationContext()
0
shulyakyarik
11 / 11 / 3
Регистрация: 28.03.2014
Сообщений: 156
12.08.2014, 12:24  [ТС] #5
Spelcrawler, сделал так

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
...
CreateView(this);
...
public void CreateView(final Context context){
        AlertDialog.Builder ad = new AlertDialog.Builder(context);
        ad.setTitle("Title");
        ad.setMessage("MMM");
        ad.setPositiveButton("Positive", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int arg1) {
                Toast.makeText(context, "XXX", Toast.LENGTH_LONG).show();
            }
        });
        ad.setNegativeButton("Negative", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int arg1) {
                Toast.makeText(context, "YYY", Toast.LENGTH_LONG).show();
            }
        });
        ad.show();
    }
Заработало
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.08.2014, 12:24
Привет! Вот еще темы с ответами:

При смене языка пропадет Action Bar на 4.2.2 - Программирование Android
Здравствуйте. В проекте имеется папка res в ней 3 папки values (ресурсы по умолчанию), values-ru(ресурсы на русском), values-uk (ресурсы на...

Ошибка при использовании action bar sherlock - Программирование Android
Всем привет, недавно достался проект с action bar sherlock, нужно добавить поддержку твиттера, я использовал Fabric plagin для этого,...

Action Bar в Activity для навигации по фрагментам в TabHost-е - Программирование Android
Здравствуйте. Есть главная Activity наследуемая от TabHost. Использую TabHost специально, чтобы вкладки не свайпились, т.к. на одной из...

Как передавать данные в предыдущее activity, используя кнопку назад в action bar? - Программирование Android
Я сделал кнопку назад ,прописав в manifest файле(как здесь http://developer.android.com/training/implementing-navigation/ancestral.html) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.08.2014, 12:24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru