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

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

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

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

4 ответа

Решение

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

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

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

@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 */
    }
}

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

@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);
    }
}

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

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

Другие вопросы по тегам