Попробуйте использовать Window.FEATURE_CUSTOM_TITLE, но получили исключение: вы не можете комбинировать пользовательские заголовки с другими функциями заголовков. - PullRequest
14 голосов
/ 22 апреля 2010

Я пытаюсь использовать пользовательский заголовок, чтобы добавить кнопку изображения в строку заголовка. Я получил много помощи от этого поста: android: добавить кнопку в заголовок приложения? , но не смог заставить его работать для моего ListActivity.

В двух словах, вот что у меня есть:

  1. Я прячу заголовок в AndroidManifest.xml
  2. Указание относительного макета для пользовательского заголовка (workorder_list_titlebar.xml)

  3. Мой класс активности выглядит следующим образом:

    public class WorkOrderListActivity extends ListActivity {
     String[] orders={"WO-12022009", "WO-12302009","WO-02122010", "02152010"};
     @Override
     public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);   
       requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
       this.getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.workorder_list_titlebar);
       setContentView(R.layout.workorder_list);
       setListAdapter(new ArrayAdapter(this,R.layout.workorder_list, R.id.label,orders));    
            }
    }

Когда я запустил приложение, я получил AndroidRuntimeException: вы не можете комбинировать пользовательские заголовки с другими функциями заголовков.

Основываясь на трассировке стека, исключение было выдано com.android.internal.policy.impl.PhoneWindow.requestFeature (PhoneWindow.java:183), которое было вызвано вызовом setlistAdapter.

У кого-нибудь есть такая же проблема с ListActivity? Также, как только мне удастся получить эту работу, как мне прикрепить слушателей к кнопке с изображением, чтобы она что-то сделала?

Заранее спасибо.

Ответы [ 11 ]

0 голосов
/ 22 апреля 2010

Попробуйте поменять местами следующие строки:

setContentView(R.layout.workorder_list);
this.getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.workorder_list_titlebar);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...