Android: добавление кнопки в название приложения?

Можно ли добавить кнопку в правый угол заголовка приложения?

например, добавить кнопку "обновить" в заголовок "Feed: my feeds"?

http://www.android.com/market/apps/feedr-lg-01.jpg alt text

Ответ 1

Самый простой способ сделать это, IMHO, - избавиться от стандартной строки заголовка (android:theme="@android:style/Theme.NoTitleBar" в элементе <activity> в манифесте) и поместить свою собственную "строку заголовка" в начало действия.

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

Ответ 2

Почему бы вам не попробовать этот

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    final boolean customTitle= requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

    setContentView(R.layout.main);

    if ( customTitle ) {
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, Set your layout for title here and mention your button in this layout);
    }

    final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
    if ( myTitleText != null ) {
        myTitleText.setText("NEW TITLE");
        myTitleText.setBackgroundColor(Color.BLUE);
    }
}

Ответ 3

Да, это решило проблему, которую я... обрезанная версия ниже...

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

    setContentView(R.layout.main);
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, Set your layout for title here and mention your button in this layout);

   final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
    if ( myTitleText != null ) {
        /*  your code here */
    }
}

Ответ 4

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

Здесь - ссылка на документацию для класса обработчика. Я бы начал с изучения базового использования обработчика. Затем проверьте метод sendMessageDelayed, чтобы в конце каждого вызова вы перезапустили обработчик. Также не забудьте создать только новый обработчик, если ваша деятельность является главной активностью и не беспокоит обновление ui, если это не так. Добавление простого флажка isActive для приостановки и возобновления - это достойный способ проверить это.