Изменение представления пункта меню на панели действийAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Изменение представления пункта меню на панели действий

Сообщение Anonymous »

Я пытаюсь реализовать кнопку обновления в своем приложении, чтобы позволить пользователю вручную выполнить повторную синхронизацию с веб-сервером. Код работает, но у меня возникли проблемы с определением представления действий (по крайней мере, я думаю, что это то, что я должен использовать).

Мой пункт меню здесь:
Проблема в том, что он всегда показывает ProgressBar. Я задался вопросом, работает ли он как виджет поиска (единственный пример, который я действительно вижу в Интернете), и добавил тег свернутьActionView в showAsAction, и это помешало его немедленному отображению. Однако, когда я нажимаю кнопку обновления, значок исчезает (хорошо), но также исчезает и заголовок на панели действий, а в левой части окна, где раньше был заголовок, появляется ProgressBar. Тоже не то, что я хотел.

В качестве последней попытки я попытался добавить это в свой код и удалить actionViewClass из XML:

Код: Выделить всё

MenuItem refresh = (MenuItem)findViewById(R.id.main_menu_refresh);
Log.w("MyApp", "Have Menu");
ProgressBar pb = new ProgressBar(ReadingList.this);
refresh.setActionView(pb);
Это тоже не сработало, выдало ошибку нулевого указателя в setActionView.

Мне нужно решение, которое я могу вызвать из любой функции (в начале есть период автосинхронизации, во время которого я также хотел бы, чтобы ProgressBar отображался), и иметь возможность после этого вернуть его к статическому значку.

Я пытался прочитать этот вопрос, но Мне трудно понять, что означает ответ. Мне кажется, что я пытался сделать именно то, что здесь написано, но, думаю, нет. Мы очень ценим любую помощь.

Изменить: по предложению Састракси.

Код: Выделить всё

public class IconSwitcher extends LinearLayout{

public IconSwitcher(Context context) {
super(context);

ProgressBar pb = new ProgressBar(context);
ImageView iv = new ImageView(context);

addView(iv);
addView(pb);
}
}
На данный момент это мой класс. Однако, когда я пытаюсь сослаться на него с помощью:

Код: Выделить всё

MenuItem refresh = (MenuItem)findViewById(R.id.main_menu_refresh);
IconSwitcher ic = (IconSwitcher) refresh.getActionView();
Я получаю ошибку нулевого указателя. о создании IconSwitcher. XML кнопки выглядит следующим образом:
Мне просто трудно сослаться на это представление IconSwitcher.

Изменить 2: я судя по всему, вообще возникли проблемы со ссылкой на пункт меню.

Код: Выделить всё

MenuItem refresh = (MenuItem)findViewById(R.id.main_menu_refresh);
refresh.setVisible(false);
Также дает мне нулевой указатель, когда я пытаюсь установить видимость. Что не так с моими ссылками?

Подробнее здесь: https://stackoverflow.com/questions/993 ... action-bar
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»